|
2 | 2 | #
|
3 | 3 | # This source file is part of the Swift.org open source project
|
4 | 4 | #
|
5 |
| -# Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors |
| 5 | +# Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors |
6 | 6 | # Licensed under Apache License v2.0 with Runtime Library Exception
|
7 | 7 | #
|
8 | 8 | # See https://swift.org/LICENSE.txt for license information
|
@@ -297,6 +297,8 @@ config.swift_refactor = inferSwiftBinary('swift-refactor')
|
297 | 297 | config.swift_demangle_yamldump = inferSwiftBinary('swift-demangle-yamldump')
|
298 | 298 | config.benchmark_o = inferSwiftBinary('Benchmark_O')
|
299 | 299 | config.benchmark_driver = inferSwiftBinary('Benchmark_Driver')
|
| 300 | +config.wasmer = inferSwiftBinary('wasmer') |
| 301 | +config.wasm_ld = inferSwiftBinary('wasm-ld') |
300 | 302 |
|
301 | 303 | config.swift_utils = make_path(config.swift_src_root, 'utils')
|
302 | 304 | config.line_directive = make_path(config.swift_utils, 'line-directive')
|
@@ -1340,6 +1342,73 @@ elif run_os == 'linux-androideabi' or run_os == 'linux-android':
|
1340 | 1342 | '-L%s' % make_path(test_resource_dir, config.target_sdk_name)])
|
1341 | 1343 | # The Swift interpreter is not available when targeting Android.
|
1342 | 1344 | config.available_features.discard('swift_interpreter')
|
| 1345 | +elif run_os == 'wasi': |
| 1346 | + lit_config.note("Testing WebAssembly/WASI " + config.variant_triple) |
| 1347 | + |
| 1348 | + config.target_object_format = "wasm" |
| 1349 | + config.target_shared_library_prefix = 'lib' |
| 1350 | + config.target_shared_library_suffix = ".a" |
| 1351 | + config.target_sdk_name = "wasi" |
| 1352 | + config.target_runtime = "native" |
| 1353 | + |
| 1354 | + config.target_swift_autolink_extract = inferSwiftBinary("swift-autolink-extract") |
| 1355 | + |
| 1356 | + config.target_build_swift = ' '.join([ |
| 1357 | + config.swiftc, |
| 1358 | + '-target', config.variant_triple, |
| 1359 | + '-Xcc', '--sysroot=%s' % config.variant_sdk, |
| 1360 | + '-Xclang-linker', '--sysroot=%s' % config.variant_sdk, |
| 1361 | + '-toolchain-stdlib-rpath', resource_dir_opt, |
| 1362 | + mcp_opt, config.swift_test_options, |
| 1363 | + config.swift_driver_test_options, swift_execution_tests_extra_flags]) |
| 1364 | + config.target_codesign = "echo" |
| 1365 | + config.target_build_swift_dylib = ( |
| 1366 | + "%s -parse-as-library -emit-library -o '\\1'" |
| 1367 | + % (config.target_build_swift)) |
| 1368 | + config.target_add_rpath = '' |
| 1369 | + config.target_swift_frontend = ' '.join([ |
| 1370 | + config.swift, |
| 1371 | + '-frontend', |
| 1372 | + '-target', config.variant_triple, |
| 1373 | + '-Xcc', '--sysroot=%s' % config.variant_sdk, |
| 1374 | + resource_dir_opt, mcp_opt, |
| 1375 | + config.swift_test_options, config.swift_frontend_test_options]) |
| 1376 | + subst_target_swift_frontend_mock_sdk = config.target_swift_frontend |
| 1377 | + subst_target_swift_frontend_mock_sdk_after = "" |
| 1378 | + config.target_run = '%s run --backend cranelift --' % config.wasmer |
| 1379 | + if 'interpret' in lit_config.params: |
| 1380 | + use_interpreter_for_simple_runs() |
| 1381 | + config.target_sil_opt = ( |
| 1382 | + '%s -target %s %s %s %s' % |
| 1383 | + (config.sil_opt, config.variant_triple, resource_dir_opt, mcp_opt, config.sil_test_options)) |
| 1384 | + config.target_swift_symbolgraph_extract = ' '.join([ |
| 1385 | + config.swift_symbolgraph_extract, |
| 1386 | + '-target', config.variant_triple, |
| 1387 | + mcp_opt]) |
| 1388 | + config.target_swift_ide_test = ( |
| 1389 | + '%s -target %s %s %s %s' % |
| 1390 | + (config.swift_ide_test, config.variant_triple, resource_dir_opt, |
| 1391 | + mcp_opt, ccp_opt)) |
| 1392 | + subst_target_swift_ide_test_mock_sdk = config.target_swift_ide_test |
| 1393 | + subst_target_swift_ide_test_mock_sdk_after = "" |
| 1394 | + config.target_swiftc_driver = ( |
| 1395 | + "%s -target %s -toolchain-stdlib-rpath %s %s" % |
| 1396 | + (config.swiftc, config.variant_triple, resource_dir_opt, mcp_opt)) |
| 1397 | + config.target_swift_modulewrap = ( |
| 1398 | + '%s -modulewrap -target %s' % |
| 1399 | + (config.swiftc, config.variant_triple)) |
| 1400 | + config.target_swift_emit_pcm = ( |
| 1401 | + '%s -emit-pcm -target %s' % |
| 1402 | + (config.swiftc, config.variant_triple)) |
| 1403 | + config.target_clang = ( |
| 1404 | + "%s -target %s %s -fobjc-runtime=ios-5.0" % |
| 1405 | + (config.clang, config.variant_triple, clang_mcp_opt)) |
| 1406 | + config.target_ld = ( |
| 1407 | + "%s -L%r" % |
| 1408 | + (config.wasm_ld, make_path(test_resource_dir, config.target_sdk_name))) |
| 1409 | + |
| 1410 | + # The Swift interpreter is not available when targeting WebAssembly/WASI. |
| 1411 | + config.available_features.discard('swift_interpreter') |
1343 | 1412 |
|
1344 | 1413 | else:
|
1345 | 1414 | lit_config.fatal("Don't know how to define target_run and "
|
|
0 commit comments