Skip to content

Commit e5f4cb1

Browse files
committed
CMake: set up wasi.modulemap in stdlib/public/Platform
1 parent ce21dda commit e5f4cb1

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

stdlib/public/Platform/CMakeLists.txt

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,58 @@ add_swift_target_library(swiftGlibc ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_O
6363
INSTALL_IN_COMPONENT sdk-overlay
6464
DEPENDS glibc_modulemap)
6565

66+
if(WASI IN_LIST SWIFT_SDKS)
67+
set(arch_subdir "${SWIFT_SDK_WASI_LIB_SUBDIR}/wasm32")
68+
set(module_dir "${SWIFTLIB_DIR}/${arch_subdir}")
69+
set(module_dir_static "${SWIFTSTATICLIB_DIR}/${arch_subdir}")
70+
set(wasi_libc_modulemap_out "${module_dir}/wasi.modulemap")
71+
set(wasi_libc_modulemap_out_static "${module_dir_static}/wasi.modulemap")
72+
handle_gyb_source_single(wasi_libc_modulemap_target
73+
SOURCE "wasi.modulemap.gyb"
74+
OUTPUT "${wasi_libc_modulemap_out}"
75+
FLAGS "-DLIBC_INCLUDE_PATH=${SWIFT_SDK_WASI_ARCH_wasm32_LIBC_INCLUDE_DIRECTORY}"
76+
"-DLIBC_ARCH_INCLUDE_PATH=${SWIFT_SDK_WASI_ARCH_wasm32_LIBC_ARCHITECTURE_INCLUDE_DIRECTORY}")
77+
add_custom_command_target(
78+
copy_wasi_libc_modulemap_static
79+
COMMAND
80+
"${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir_static}
81+
COMMAND
82+
"${CMAKE_COMMAND}" "-E" "copy" ${wasi_libc_modulemap_out} ${wasi_libc_modulemap_out_static}
83+
OUTPUT ${wasi_libc_modulemap_out_static}
84+
DEPENDS
85+
"${wasi_libc_modulemap_target}"
86+
COMMENT "Copying WASILlibc modulemap to static resources")
87+
88+
add_swift_target_library(swiftWASILibc ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
89+
${swift_platform_sources}
90+
POSIXError.swift
91+
92+
GYB_SOURCES
93+
${swift_platform_gyb_sources}
94+
WASI.swift.gyb
95+
96+
SWIFT_COMPILE_FLAGS
97+
${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}
98+
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
99+
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
100+
TARGET_SDKS WASI
101+
INSTALL_IN_COMPONENT sdk-overlay
102+
DEPENDS ${wasi_libc_modulemap_target} ${copy_wasi_libc_modulemap_static})
103+
104+
swift_install_in_component(FILES "${wasi_libc_modulemap_out}"
105+
DESTINATION "lib/swift/${arch_subdir}"
106+
COMPONENT sdk-overlay)
107+
108+
swift_install_in_component(FILES "${wasi_libc_modulemap_out}"
109+
DESTINATION "lib/swift_static/${arch_subdir}"
110+
COMPONENT sdk-overlay)
111+
112+
add_custom_target(wasi_libc_modulemap
113+
DEPENDS ${wasi_libc_modulemap_target} ${copy_wasi_libc_modulemap_static})
114+
set_property(TARGET wasi_libc_modulemap PROPERTY FOLDER "Miscellaneous")
115+
add_dependencies(sdk-overlay wasi_libc_modulemap)
116+
endif()
117+
66118
add_swift_target_library(swiftCRT ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
67119
ucrt.swift
68120
${swift_platform_sources}

0 commit comments

Comments
 (0)