@@ -385,6 +385,7 @@ if("WASI" IN_LIST SWIFT_SDKS)
385
385
set (arch_subdir "${SWIFT_SDK_WASI_LIB_SUBDIR} /${arch} " )
386
386
set (module_dir "${SWIFTLIB_DIR} /${arch_subdir} " )
387
387
set (module_dir_static "${SWIFTSTATICLIB_DIR} /${arch_subdir} " )
388
+ set (module_dir_embedded "${SWIFTLIB_DIR} /embedded/${arch} " )
388
389
389
390
add_custom_command_target (
390
391
copy_wasilibc_modulemap_resource
@@ -410,6 +411,25 @@ if("WASI" IN_LIST SWIFT_SDKS)
410
411
COMPONENT sdk-overlay )
411
412
endif ()
412
413
414
+ if (SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB )
415
+ add_custom_command_target (
416
+ copy_wasilibc_modulemap_embedded_resource
417
+ COMMAND
418
+ "${CMAKE_COMMAND} " "-E" "make_directory" ${module_dir} ${module_dir_embedded}
419
+ COMMAND
420
+ "${CMAKE_COMMAND} " "-E" "copy_if_different"
421
+ "${CMAKE_CURRENT_SOURCE_DIR} /${wasilibc_modulemap_source} " ${module_dir_embedded}
422
+ OUTPUT "${module_dir_embedded} /${wasilibc_modulemap_source} "
423
+ COMMENT "Copying WASILibc modulemap to resource directories" )
424
+ add_dependencies (sdk-overlay ${copy_wasilibc_modulemap_embedded_resource} )
425
+ list (APPEND wasilibc_modulemap_target_list ${copy_wasilibc_modulemap_embedded_resource} )
426
+
427
+ swift_install_in_component (FILES "${wasilibc_modulemap_source} "
428
+ DESTINATION "lib/swift/embedded/${arch_subdir} "
429
+ COMPONENT sdk-overlay )
430
+ message (STATUS "wasilibc_modulemap_target_list is ${wasilibc_modulemap_target_list} " )
431
+ endif ()
432
+
413
433
set (wasilibc_apinotes_source "SwiftWASILibc.apinotes" )
414
434
add_custom_command_target (
415
435
copy_wasilibc_apinotes_resource
@@ -452,3 +472,41 @@ if(WINDOWS IN_LIST SWIFT_SDKS)
452
472
DESTINATION "share"
453
473
COMPONENT sdk-overlay )
454
474
endif ()
475
+
476
+ if (SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB )
477
+ add_custom_target (embedded-stdlib-platform )
478
+ add_dependencies (embedded-libraries embedded-stdlib-platform )
479
+
480
+ if (SWIFT_WASI_SYSROOT_PATH )
481
+ set (arch "wasm32" )
482
+ set (triple "wasm32-unknown-wasip1" )
483
+
484
+ set (SWIFT_SDK_embedded_ARCH_${arch}_MODULE "${triple} " )
485
+ set (SWIFT_SDK_embedded_LIB_SUBDIR "embedded" )
486
+ set (SWIFT_SDK_embedded_ARCH_${arch}_TRIPLE "${triple} " )
487
+ add_swift_target_library_single (
488
+ embedded-stdlib-platform-${triple}
489
+ swiftWASILibc
490
+ ONLY_SWIFTMODULE
491
+ IS_STDLIB IS_FRAGILE
492
+ ${swift_platform_sources}
493
+ POSIXError.swift
494
+
495
+ GYB_SOURCES
496
+ ${swift_platform_gyb_sources}
497
+ WASILibc.swift.gyb
498
+
499
+ SWIFT_COMPILE_FLAGS
500
+ -enable-experimental-feature Embedded
501
+ -Xfrontend -emit-empty-object-file
502
+
503
+ MODULE_DIR "${CMAKE_BINARY_DIR} /lib/swift/embedded"
504
+ SDK "embedded"
505
+ ARCHITECTURE "${arch} "
506
+ ARCHITECTURE_SUBDIR_NAME "${mod} "
507
+ DEPENDS wasilibc_modulemap
508
+ INSTALL_IN_COMPONENT sdk-overlay
509
+ )
510
+ add_dependencies (embedded-stdlib-platform embedded-stdlib-platform-${triple} )
511
+ endif ()
512
+ endif ()
0 commit comments