Skip to content

Commit e1c8011

Browse files
committed
[static][stdlib] Use the FindICU variables.
Instead of deriving the static library paths twice, use the variables generated by the FindICU cmake module. The base cmakefiles only find icui18n and icuuc, but icudata is required to complete a static link, so we have to invoke find_package again here to ensure the variable is set.
1 parent 9cea66b commit e1c8011

File tree

1 file changed

+4
-14
lines changed

1 file changed

+4
-14
lines changed

stdlib/public/runtime/CMakeLists.txt

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -80,20 +80,10 @@ if(SWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_STATICLIB)
8080
set(libicu_uc_a -licuucswift)
8181
set(libicu_data_a -licudataswift)
8282
else()
83-
find_package(ICU REQUIRED COMPONENTS uc i18n)
84-
get_filename_component(ICU_UC_LIBDIR "${ICU_UC_LIBRARIES}" DIRECTORY)
85-
get_filename_component(ICU_I18N_LIBDIR "${ICU_I18N_LIBRARIES}" DIRECTORY)
86-
87-
set(libicu_i18n_a -licui18n)
88-
set(libicu_uc_a -licuuc)
89-
set(libicu_data_a)
90-
if(EXISTS ${ICU_I18N_LIBDIR}/libicui18n.a AND
91-
EXISTS ${ICU_UC_LIBDIR}/libicuuc.a AND
92-
EXISTS ${ICU_UC_LIBDIR}/libicudata.a)
93-
set(libicu_i18n_a ${ICU_I18N_LIBDIR}/libicui18n.a)
94-
set(libicu_uc_a ${ICU_UC_LIBDIR}/libicuuc.a)
95-
set(libicu_data_a ${ICU_UC_LIBDIR}/libicudata.a)
96-
endif()
83+
find_package(ICU REQUIRED COMPONENTS uc i18n data)
84+
set(libicu_i18n_a ${SWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_I18N_STATIC})
85+
set(libicu_uc_a ${SWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_UC_STATIC})
86+
set(libicu_data_a ${SWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_DATA_STATIC})
9787
endif()
9888

9989
# TODO: Put the logic for finding libdl in a module, similar to ICU.

0 commit comments

Comments
 (0)