@@ -244,10 +244,31 @@ foreach(sdk ${SWIFT_SDKS})
244
244
add_dependencies (stdlib swift-stdlib-${arch_suffix} swiftImageRegistration-${arch_suffix} )
245
245
endif ()
246
246
247
+ string (TOLOWER "${sdk} " lowercase_sdk )
247
248
# Generate the static-stdlib-args.lnk file used by -static-stdlib option for
248
249
# 'GenericUnix' (eg linux)
249
250
if (${SWIFT_SDK_${sdk}_OBJECT_FORMAT} STREQUAL ELF )
250
251
string (TOLOWER "${sdk} " lowercase_sdk )
252
+ if (SWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_STATICLIB )
253
+ set (libicu_i18n_a -licui18nswift )
254
+ set (libicu_uc_a -licuucswift )
255
+ set (libicu_data_a -licudataswift )
256
+ else ()
257
+ find_package (ICU REQUIRED COMPONENTS uc i18n )
258
+ get_filename_component (ICU_UC_LIBDIR "${ICU_UC_LIBRARIES} " DIRECTORY )
259
+ get_filename_component (ICU_I18N_LIBDIR "${ICU_I18N_LIBRARIES} " DIRECTORY )
260
+
261
+ set (libicu_i18n_a -licui18n )
262
+ set (libicu_uc_a -licuuc )
263
+ set (libicu_data_a )
264
+ if (EXISTS ${ICU_I18N_LIBDIR} /libicui18n.a AND
265
+ EXISTS ${ICU_UC_LIBDIR} /libicuuc.a AND
266
+ EXISTS ${ICU_UC_LIBDIR} /libicudata.a )
267
+ set (libicu_i18n_a ${ICU_I18N_LIBDIR} /libicui18n.a )
268
+ set (libicu_uc_a ${ICU_UC_LIBDIR} /libicuuc.a )
269
+ set (libicu_data_a ${ICU_UC_LIBDIR} /libicudata.a )
270
+ endif ()
271
+ endif ()
251
272
set (libpthread -lpthread )
252
273
set (concurrency_libs )
253
274
set (android_libraries )
@@ -274,6 +295,28 @@ ${concurrency_libs}
274
295
swift_install_in_component (FILES "${SWIFTSTATICLIB_DIR} /${linkfile} "
275
296
DESTINATION "lib/swift_static/${lowercase_sdk} "
276
297
COMPONENT stdlib )
298
+ elseif ("${sdk} " STREQUAL "WASI" )
299
+ set (swift_icu_libs_wasi_list )
300
+ set (icu_modules UC I18N DATA )
301
+ foreach (module IN LISTS icu_modules )
302
+ set (module_lib "${SWIFT_WASI_wasm32_ICU_${module} }" )
303
+ get_filename_component (module_lib_name ${module_lib} NAME )
304
+ add_custom_command_target (swift_icu_${module}_${sdk}
305
+ COMMAND
306
+ "${CMAKE_COMMAND} " -E copy
307
+ "${module_lib} "
308
+ "${SWIFTSTATICLIB_DIR} /${lowercase_sdk} /${module_lib_name} "
309
+ OUTPUT
310
+ "${SWIFTSTATICLIB_DIR} /${lowercase_sdk} /${module_lib_name} "
311
+ DEPENDS
312
+ "${module_lib} " )
313
+ list (APPEND swift_icu_libs_wasi_list ${swift_icu_${module}_${sdk}} )
314
+ swift_install_in_component (FILES "${SWIFTSTATICLIB_DIR} /${lowercase_sdk} /${module_lib_name} "
315
+ DESTINATION "lib/swift_static/${lowercase_sdk} "
316
+ COMPONENT stdlib )
317
+ endforeach ()
318
+ add_custom_target (swift_icu_libs_wasi ALL DEPENDS ${swift_icu_libs_wasi_list} )
319
+ add_dependencies (stdlib swift_icu_libs_wasi )
277
320
endif ()
278
321
endforeach ()
279
322
endforeach ()
0 commit comments