|
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
|
@@ -261,6 +261,8 @@ config.swift_refactor = inferSwiftBinary('swift-refactor')
|
261 | 261 | config.swift_demangle_yamldump = inferSwiftBinary('swift-demangle-yamldump')
|
262 | 262 | config.benchmark_o = inferSwiftBinary('Benchmark_O')
|
263 | 263 | config.benchmark_driver = inferSwiftBinary('Benchmark_Driver')
|
| 264 | +config.wasmer = inferSwiftBinary('wasmer') |
| 265 | +config.wasm_ld = inferSwiftBinary('wasm-ld') |
264 | 266 |
|
265 | 267 | config.swift_utils = make_path(config.swift_src_root, 'utils')
|
266 | 268 | config.line_directive = make_path(config.swift_utils, 'line-directive')
|
@@ -1305,6 +1307,73 @@ elif run_os == 'linux-androideabi' or run_os == 'linux-android':
|
1305 | 1307 | '-L%s' % make_path(test_resource_dir, config.target_sdk_name)])
|
1306 | 1308 | # The Swift interpreter is not available when targeting Android.
|
1307 | 1309 | config.available_features.discard('swift_interpreter')
|
| 1310 | +elif run_os == 'wasi': |
| 1311 | + lit_config.note("Testing WebAssembly/WASI " + config.variant_triple) |
| 1312 | + |
| 1313 | + config.target_object_format = "wasm" |
| 1314 | + config.target_shared_library_prefix = 'lib' |
| 1315 | + config.target_shared_library_suffix = ".a" |
| 1316 | + config.target_sdk_name = "wasi" |
| 1317 | + config.target_runtime = "native" |
| 1318 | + |
| 1319 | + config.target_swift_autolink_extract = inferSwiftBinary("swift-autolink-extract") |
| 1320 | + |
| 1321 | + config.target_build_swift = ' '.join([ |
| 1322 | + config.swiftc, |
| 1323 | + '-target', config.variant_triple, |
| 1324 | + '-Xcc', '--sysroot=%s' % config.variant_sdk, |
| 1325 | + '-Xclang-linker', '--sysroot=%s' % config.variant_sdk, |
| 1326 | + '-toolchain-stdlib-rpath', resource_dir_opt, |
| 1327 | + mcp_opt, config.swift_test_options, |
| 1328 | + config.swift_driver_test_options, swift_execution_tests_extra_flags]) |
| 1329 | + config.target_codesign = "echo" |
| 1330 | + config.target_build_swift_dylib = ( |
| 1331 | + "%s -parse-as-library -emit-library -o '\\1'" |
| 1332 | + % (config.target_build_swift)) |
| 1333 | + config.target_add_rpath = '' |
| 1334 | + config.target_swift_frontend = ' '.join([ |
| 1335 | + config.swift, |
| 1336 | + '-frontend', |
| 1337 | + '-target', config.variant_triple, |
| 1338 | + '-Xcc', '--sysroot=%s' % config.variant_sdk, |
| 1339 | + resource_dir_opt, mcp_opt, |
| 1340 | + config.swift_test_options, config.swift_frontend_test_options]) |
| 1341 | + subst_target_swift_frontend_mock_sdk = config.target_swift_frontend |
| 1342 | + subst_target_swift_frontend_mock_sdk_after = "" |
| 1343 | + config.target_run = '%s run --backend cranelift --' % config.wasmer |
| 1344 | + if 'interpret' in lit_config.params: |
| 1345 | + use_interpreter_for_simple_runs() |
| 1346 | + config.target_sil_opt = ( |
| 1347 | + '%s -target %s %s %s %s' % |
| 1348 | + (config.sil_opt, config.variant_triple, resource_dir_opt, mcp_opt, config.sil_test_options)) |
| 1349 | + config.target_swift_symbolgraph_extract = ' '.join([ |
| 1350 | + config.swift_symbolgraph_extract, |
| 1351 | + '-target', config.variant_triple, |
| 1352 | + mcp_opt]) |
| 1353 | + config.target_swift_ide_test = ( |
| 1354 | + '%s -target %s %s %s %s' % |
| 1355 | + (config.swift_ide_test, config.variant_triple, resource_dir_opt, |
| 1356 | + mcp_opt, ccp_opt)) |
| 1357 | + subst_target_swift_ide_test_mock_sdk = config.target_swift_ide_test |
| 1358 | + subst_target_swift_ide_test_mock_sdk_after = "" |
| 1359 | + config.target_swiftc_driver = ( |
| 1360 | + "%s -target %s -toolchain-stdlib-rpath %s %s" % |
| 1361 | + (config.swiftc, config.variant_triple, resource_dir_opt, mcp_opt)) |
| 1362 | + config.target_swift_modulewrap = ( |
| 1363 | + '%s -modulewrap -target %s' % |
| 1364 | + (config.swiftc, config.variant_triple)) |
| 1365 | + config.target_swift_emit_pcm = ( |
| 1366 | + '%s -emit-pcm -target %s' % |
| 1367 | + (config.swiftc, config.variant_triple)) |
| 1368 | + config.target_clang = ( |
| 1369 | + "%s -target %s %s -fobjc-runtime=ios-5.0" % |
| 1370 | + (config.clang, config.variant_triple, clang_mcp_opt)) |
| 1371 | + config.target_ld = ( |
| 1372 | + "%s -L%r" % |
| 1373 | + (config.wasm_ld, make_path(test_resource_dir, config.target_sdk_name))) |
| 1374 | + |
| 1375 | + # The Swift interpreter is not available when targeting WebAssembly/WASI. |
| 1376 | + config.available_features.discard('swift_interpreter') |
1308 | 1377 |
|
1309 | 1378 | else:
|
1310 | 1379 | lit_config.fatal("Don't know how to define target_run and "
|
|
0 commit comments