Skip to content

Commit 7ae0c75

Browse files
kateinoigakukunrunner
authored andcommitted
[wasm][build] Install ICU static libraries under swift_static
1 parent 896a736 commit 7ae0c75

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

stdlib/public/runtime/CMakeLists.txt

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,10 +260,31 @@ foreach(sdk ${SWIFT_SDKS})
260260
add_dependencies(stdlib swift-stdlib-${arch_suffix} swiftImageRegistration-${arch_suffix})
261261
endif()
262262

263+
string(TOLOWER "${sdk}" lowercase_sdk)
263264
# Generate the static-stdlib-args.lnk file used by -static-stdlib option for
264265
# 'GenericUnix' (eg linux)
265266
if(${SWIFT_SDK_${sdk}_OBJECT_FORMAT} STREQUAL ELF)
266267
string(TOLOWER "${sdk}" lowercase_sdk)
268+
if(SWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_STATICLIB)
269+
set(libicu_i18n_a -licui18nswift)
270+
set(libicu_uc_a -licuucswift)
271+
set(libicu_data_a -licudataswift)
272+
else()
273+
find_package(ICU REQUIRED COMPONENTS uc i18n)
274+
get_filename_component(ICU_UC_LIBDIR "${ICU_UC_LIBRARIES}" DIRECTORY)
275+
get_filename_component(ICU_I18N_LIBDIR "${ICU_I18N_LIBRARIES}" DIRECTORY)
276+
277+
set(libicu_i18n_a -licui18n)
278+
set(libicu_uc_a -licuuc)
279+
set(libicu_data_a)
280+
if(EXISTS ${ICU_I18N_LIBDIR}/libicui18n.a AND
281+
EXISTS ${ICU_UC_LIBDIR}/libicuuc.a AND
282+
EXISTS ${ICU_UC_LIBDIR}/libicudata.a)
283+
set(libicu_i18n_a ${ICU_I18N_LIBDIR}/libicui18n.a)
284+
set(libicu_uc_a ${ICU_UC_LIBDIR}/libicuuc.a)
285+
set(libicu_data_a ${ICU_UC_LIBDIR}/libicudata.a)
286+
endif()
287+
endif()
267288
set(libpthread -lpthread)
268289
set(concurrency_libs)
269290
set(android_libraries)
@@ -290,6 +311,28 @@ ${concurrency_libs}
290311
swift_install_in_component(FILES "${SWIFTSTATICLIB_DIR}/${linkfile}"
291312
DESTINATION "lib/swift_static/${lowercase_sdk}"
292313
COMPONENT stdlib)
314+
elseif("${sdk}" STREQUAL "WASI")
315+
set(swift_icu_libs_wasi_list)
316+
set(icu_modules UC I18N DATA)
317+
foreach(module IN LISTS icu_modules)
318+
set(module_lib "${SWIFT_WASI_wasm32_ICU_${module}}")
319+
get_filename_component(module_lib_name ${module_lib} NAME)
320+
add_custom_command_target(swift_icu_${module}_${sdk}
321+
COMMAND
322+
"${CMAKE_COMMAND}" -E copy
323+
"${module_lib}"
324+
"${SWIFTSTATICLIB_DIR}/${lowercase_sdk}/${module_lib_name}"
325+
OUTPUT
326+
"${SWIFTSTATICLIB_DIR}/${lowercase_sdk}/${module_lib_name}"
327+
DEPENDS
328+
"${module_lib}")
329+
list(APPEND swift_icu_libs_wasi_list ${swift_icu_${module}_${sdk}})
330+
swift_install_in_component(FILES "${SWIFTSTATICLIB_DIR}/${lowercase_sdk}/${module_lib_name}"
331+
DESTINATION "lib/swift_static/${lowercase_sdk}"
332+
COMPONENT stdlib)
333+
endforeach()
334+
add_custom_target(swift_icu_libs_wasi ALL DEPENDS ${swift_icu_libs_wasi_list})
335+
add_dependencies(stdlib swift_icu_libs_wasi)
293336
endif()
294337
endforeach()
295338
endforeach()

0 commit comments

Comments
 (0)