@@ -98,6 +98,23 @@ add_swift_target_library(swiftGlibc ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_O
98
98
INSTALL_IN_COMPONENT sdk-overlay
99
99
DEPENDS glibc_modulemap )
100
100
101
+ add_swift_target_library (swiftWASILibc ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
102
+ ${swift_platform_sources}
103
+ POSIXError.swift
104
+
105
+ GYB_SOURCES
106
+ ${swift_platform_gyb_sources}
107
+ WASI.swift.gyb
108
+
109
+ SWIFT_COMPILE_FLAGS
110
+ ${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}
111
+ ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
112
+ LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS} "
113
+ TARGET_SDKS WASI
114
+ INSTALL_IN_COMPONENT sdk-overlay
115
+ DEPENDS glibc_modulemap )
116
+
117
+
101
118
if (WASI IN_LIST SWIFT_SDKS )
102
119
set (arch_subdir "${SWIFT_SDK_WASI_LIB_SUBDIR} /wasm32" )
103
120
set (module_dir "${SWIFTLIB_DIR} /${arch_subdir} " )
@@ -202,23 +219,31 @@ add_swift_target_library(swiftCRT ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVE
202
219
203
220
set (glibc_modulemap_target_list )
204
221
foreach (sdk ${SWIFT_SDKS} )
205
- if (NOT "${sdk} " STREQUAL "LINUX" AND
206
- NOT "${sdk} " STREQUAL "FREEBSD" AND
207
- NOT "${sdk} " STREQUAL "OPENBSD" AND
208
- NOT "${sdk} " STREQUAL "ANDROID" AND
209
- NOT "${sdk} " STREQUAL "CYGWIN" AND
210
- NOT "${sdk} " STREQUAL "HAIKU" )
222
+ if ("${sdk} " STREQUAL "LINUX" OR
223
+ "${sdk} " STREQUAL "FREEBSD" OR
224
+ "${sdk} " STREQUAL "OPENBSD" OR
225
+ "${sdk} " STREQUAL "ANDROID" OR
226
+ "${sdk} " STREQUAL "CYGWIN" OR
227
+ "${sdk} " STREQUAL "HAIKU" )
228
+ set (glibc_modulemap_source "glibc.modulemap.gyb" )
229
+ set (glibc_header_source "SwiftGlibc.h.gyb" )
230
+ elseif ("${sdk} " STREQUAL "WASI" )
231
+ set (glibc_modulemap_source "wasi.modulemap.gyb" )
232
+ set (glibc_header_source "SwiftWASILibc.h.gyb" )
233
+ else ()
211
234
continue ()
212
235
endif ()
213
236
237
+ string (REGEX REPLACE "\\ .gyb$" "" glibc_modulemap_outname "${glibc_modulemap_source} " )
238
+ string (REGEX REPLACE "\\ .gyb$" "" glibc_header_outname "${glibc_header_source} " )
239
+
214
240
foreach (arch ${SWIFT_SDK_${sdk}_ARCHITECTURES} )
215
241
set (arch_subdir "${SWIFT_SDK_${sdk} _LIB_SUBDIR}/${arch} " )
216
242
set (module_dir "${SWIFTLIB_DIR} /${arch_subdir} " )
217
243
set (module_dir_static "${SWIFTSTATICLIB_DIR} /${arch_subdir} " )
218
244
219
- set (glibc_modulemap_source "glibc.modulemap.gyb" )
220
- set (glibc_modulemap_out "${module_dir} /glibc.modulemap" )
221
- set (glibc_modulemap_out_static "${module_dir_static} /glibc.modulemap" )
245
+ set (glibc_modulemap_out "${module_dir} /${glibc_modulemap_outname} " )
246
+ set (glibc_modulemap_out_static "${module_dir_static} /${glibc_modulemap_outname} " )
222
247
223
248
# Configure the module map based on the target. Each platform needs to
224
249
# reference different headers, based on what's available in their glibc.
@@ -232,10 +257,10 @@ foreach(sdk ${SWIFT_SDKS})
232
257
233
258
list (APPEND glibc_modulemap_target_list ${glibc_modulemap_target} )
234
259
235
- set (glibc_header_out "${module_dir} /SwiftGlibc.h " )
236
- set (glibc_header_out_static "${module_dir_static} /SwiftGlibc.h " )
260
+ set (glibc_header_out "${module_dir} /${glibc_header_outname} " )
261
+ set (glibc_header_out_static "${module_dir_static} /${glibc_header_outname} " )
237
262
handle_gyb_source_single (glibc_header_target
238
- SOURCE "SwiftGlibc.h.gyb "
263
+ SOURCE "${glibc_header_source} "
239
264
OUTPUT "${glibc_header_out} "
240
265
FLAGS "-DCMAKE_SDK=${sdk} " )
241
266
list (APPEND glibc_modulemap_target_list ${glibc_header_target} )
@@ -266,7 +291,7 @@ foreach(sdk ${SWIFT_SDKS})
266
291
# prefix. This is the one we'll install instead.
267
292
if (NOT "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK} _ARCH_${arch} _PATH}" STREQUAL "/" AND
268
293
NOT (${sdk} STREQUAL ANDROID AND NOT "${SWIFT_ANDROID_NATIVE_SYSROOT} " STREQUAL "" ))
269
- set (glibc_sysroot_relative_modulemap_out "${module_dir} /sysroot-relative-modulemaps/glibc.modulemap " )
294
+ set (glibc_sysroot_relative_modulemap_out "${module_dir} /sysroot-relative-modulemaps/${glibc_modulemap_outname} " )
270
295
271
296
handle_gyb_source_single (glibc_modulemap_native_target
272
297
SOURCE "${glibc_modulemap_source} "
0 commit comments