Skip to content

Commit 420328b

Browse files
authored
Merge pull request #14728 from compnerd/icu-arch
build: explicitly state arch for ICU
2 parents 8d52d6a + e77d4c7 commit 420328b

File tree

5 files changed

+39
-37
lines changed

5 files changed

+39
-37
lines changed

CMakeLists.txt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -194,14 +194,16 @@ set(SWIFT_ANDROID_DEPLOY_DEVICE_PATH "" CACHE STRING
194194
#
195195

196196
foreach(sdk ANDROID;FREEBSD;LINUX;WINDOWS;HAIKU)
197-
set(SWIFT_${sdk}_ICU_UC "" CACHE STRING
198-
"Path to a directory containing the icuuc library for ${sdk}")
199-
set(SWIFT_${sdk}_ICU_UC_INCLUDE "" CACHE STRING
200-
"Path to a directory containing headers for icuuc for ${sdk}")
201-
set(SWIFT_${sdk}_ICU_I18N "" CACHE STRING
202-
"Path to a directory containing the icui18n library for ${sdk}")
203-
set(SWIFT_${sdk}_ICU_I18N_INCLUDE "" CACHE STRING
204-
"Path to a directory containing headers icui18n for ${sdk}")
197+
foreach(arch aarch64;armv6;armv7;i686;powerpc64;powerpc64le;s390x;x86_64)
198+
set(SWIFT_${sdk}_${arch}_ICU_UC "" CACHE STRING
199+
"Path to a directory containing the icuuc library for ${sdk}")
200+
set(SWIFT_${sdk}_${arch}_ICU_UC_INCLUDE "" CACHE STRING
201+
"Path to a directory containing headers for icuuc for ${sdk}")
202+
set(SWIFT_${sdk}_${arch}_ICU_I18N "" CACHE STRING
203+
"Path to a directory containing the icui18n library for ${sdk}")
204+
set(SWIFT_${sdk}_${arch}_ICU_I18N_INCLUDE "" CACHE STRING
205+
"Path to a directory containing headers icui18n for ${sdk}")
206+
endforeach()
205207
endforeach()
206208

207209
#

cmake/modules/AddSwift.cmake

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -396,11 +396,11 @@ function(_add_variant_link_flags)
396396
endif()
397397
endif()
398398

399-
if(NOT "${SWIFT_${LFLAGS_SDK}_ICU_UC}" STREQUAL "")
400-
list(APPEND library_search_directories "${SWIFT_${sdk}_ICU_UC}")
399+
if(NOT "${SWIFT_${LFLAGS_SDK}_${LFLAGS_ARCH}_ICU_UC}" STREQUAL "")
400+
list(APPEND library_search_directories "${SWIFT_${sdk}_${arch}_ICU_UC}")
401401
endif()
402-
if(NOT "${SWIFT_${LFLAGS_SDK}_ICU_I18N}" STREQUAL "")
403-
list(APPEND library_search_directories "${SWIFT_${sdk}_ICU_I18N}")
402+
if(NOT "${SWIFT_${LFLAGS_SDK}_${LFLAGS_ARCH}_ICU_I18N}" STREQUAL "")
403+
list(APPEND library_search_directories "${SWIFT_${sdk}_${arch}_ICU_I18N}")
404404
endif()
405405

406406
if(NOT SWIFT_COMPILER_IS_MSVC_LIKE)
@@ -852,17 +852,17 @@ function(_add_swift_library_single target name)
852852
_set_target_prefix_and_suffix("${target}" "${libkind}" "${SWIFTLIB_SINGLE_SDK}")
853853

854854
if(SWIFTLIB_SINGLE_TARGET_LIBRARY)
855-
if(NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_ICU_UC_INCLUDE}" STREQUAL "" AND
856-
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_ICU_UC_INCLUDE}" STREQUAL "/usr/include" AND
857-
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_ICU_UC_INCLUDE}" STREQUAL "/usr/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_ARCH_${SWIFTLIB_SINGLE_ARCHITECTURE}_TRIPLE}/include" AND
858-
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_ICU_UC_INCLUDE}" STREQUAL "/usr/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_TRIPLE}/include")
859-
target_include_directories("${target}" SYSTEM PRIVATE "${SWIFT_${SWIFTLIB_SINGLE_SDK}_ICU_UC_INCLUDE}")
855+
if(NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_UC_INCLUDE}" STREQUAL "" AND
856+
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_UC_INCLUDE}" STREQUAL "/usr/include" AND
857+
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_UC_INCLUDE}" STREQUAL "/usr/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_ARCH_${SWIFTLIB_SINGLE_ARCHITECTURE}_TRIPLE}/include" AND
858+
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_UC_INCLUDE}" STREQUAL "/usr/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_TRIPLE}/include")
859+
target_include_directories("${target}" SYSTEM PRIVATE "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_UC_INCLUDE}")
860860
endif()
861-
if(NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_ICU_I18N_INCLUDE}" STREQUAL "" AND
862-
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_ICU_I18N_INCLUDE}" STREQUAL "/usr/include" AND
863-
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_ICU_I18N_INCLUDE}" STREQUAL "/usr/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_ARCH_${SWIFTLIB_SINGLE_ARCHITECTURE}_TRIPLE}/include" AND
864-
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_ICU_I18N_INCLUDE}" STREQUAL "/usr/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_TRIPLE}/include")
865-
target_include_directories("${target}" SYSTEM PRIVATE "${SWIFT_${SWIFTLIB_SINGLE_SDK}_ICU_I18N_INCLUDE}")
861+
if(NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_I18N_INCLUDE}" STREQUAL "" AND
862+
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_I18N_INCLUDE}" STREQUAL "/usr/include" AND
863+
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_I18N_INCLUDE}" STREQUAL "/usr/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_ARCH_${SWIFTLIB_SINGLE_ARCHITECTURE}_TRIPLE}/include" AND
864+
NOT "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_I18N_INCLUDE}" STREQUAL "/usr/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_TRIPLE}/include")
865+
target_include_directories("${target}" SYSTEM PRIVATE "${SWIFT_${SWIFTLIB_SINGLE_SDK}_${SWIFTLIB_SINGLE_ARCHITECTURE}_ICU_I18N_INCLUDE}")
866866
endif()
867867
endif()
868868

@@ -1539,7 +1539,7 @@ function(add_swift_library name)
15391539
foreach(lib ${SWIFTLIB_PRIVATE_LINK_LIBRARIES})
15401540
if("${lib}" STREQUAL "ICU_UC")
15411541
list(APPEND swiftlib_private_link_libraries_targets
1542-
"${SWIFT_${sdk}_ICU_UC}")
1542+
"${SWIFT_${sdk}_${arch}_ICU_UC}")
15431543
# temporary fix for atomic needing to be
15441544
# after object files for libswiftCore.so
15451545
if("${sdk}" STREQUAL "ANDROID")
@@ -1553,7 +1553,7 @@ function(add_swift_library name)
15531553
endif()
15541554
elseif("${lib}" STREQUAL "ICU_I18N")
15551555
list(APPEND swiftlib_private_link_libraries_targets
1556-
"${SWIFT_${sdk}_ICU_I18N}")
1556+
"${SWIFT_${sdk}_${arch}_ICU_I18N}")
15571557
elseif(TARGET "${lib}${VARIANT_SUFFIX}")
15581558
list(APPEND swiftlib_private_link_libraries_targets
15591559
"${lib}${VARIANT_SUFFIX}")

cmake/modules/FindICU.cmake

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@ endforeach()
3434
foreach(sdk ANDROID;FREEBSD;LINUX;WINDOWS;HAIKU)
3535
foreach(MODULE ${ICU_FIND_COMPONENTS})
3636
string(TOUPPER "${MODULE}" MODULE)
37-
if("${SWIFT_${sdk}_ICU_${MODULE}_INCLUDE}" STREQUAL "")
38-
set(SWIFT_${sdk}_ICU_${MODULE}_INCLUDE ${ICU_${MODULE}_INCLUDE_DIRS})
37+
if("${SWIFT_${sdk}_${SWIFT_HOST_VARIANT_ARCH}_ICU_${MODULE}_INCLUDE}" STREQUAL "")
38+
set(SWIFT_${sdk}_${SWIFT_HOST_VARIANT_ARCH}_ICU_${MODULE}_INCLUDE ${ICU_${MODULE}_INCLUDE_DIRS} CACHE STRING "" FORCE)
3939
endif()
40-
if("${SWIFT_${sdk}_ICU_${MODULE}}" STREQUAL "")
41-
set(SWIFT_${sdk}_ICU_${MODULE} ${ICU_${MODULE}_LIBRARY})
40+
if("${SWIFT_${sdk}_${SWIFT_HOST_VARIANT_ARCH}_ICU_${MODULE}}" STREQUAL "")
41+
set(SWIFT_${sdk}_${SWIFT_HOST_VARIANT_ARCH}_ICU_${MODULE} ${ICU_${MODULE}_LIBRARY} CACHE STRING "" FORCE)
4242
endif()
4343
endforeach()
4444
endforeach()

test/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,8 @@ foreach(SDK ${SWIFT_SDKS})
236236
# These two directories may contain the same libraries,
237237
# but upload both to device just in case. Duplicates will be
238238
# overwritten, and uploading doesn't take very long anyway.
239-
"${SWIFT_ANDROID_ICU_UC}"
240-
"${SWIFT_ANDROID_ICU_I18N}")
239+
"${SWIFT_ANDROID_${ARCH}_ICU_UC}"
240+
"${SWIFT_ANDROID_${ARCH}_ICU_I18N}")
241241
endif()
242242
add_custom_target("upload-stdlib${VARIANT_SUFFIX}"
243243
${command_upload_stdlib}

utils/build-script-impl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2011,10 +2011,10 @@ for host in "${ALL_HOSTS[@]}"; do
20112011
-DSWIFT_ANDROID_NDK_PATH:STRING="${ANDROID_NDK}"
20122012
-DSWIFT_ANDROID_NDK_GCC_VERSION:STRING="${ANDROID_NDK_GCC_VERSION}"
20132013
-DSWIFT_ANDROID_SDK_PATH:STRING="${ANDROID_NDK}/platforms/android-${ANDROID_API_LEVEL}/arch-arm"
2014-
-DSWIFT_ANDROID_ICU_UC:STRING="${ANDROID_ICU_UC}"
2015-
-DSWIFT_ANDROID_ICU_UC_INCLUDE:STRING="${ANDROID_ICU_UC_INCLUDE}"
2016-
-DSWIFT_ANDROID_ICU_I18N:STRING="${ANDROID_ICU_I18N}"
2017-
-DSWIFT_ANDROID_ICU_I18N_INCLUDE:STRING="${ANDROID_ICU_I18N_INCLUDE}"
2014+
-DSWIFT_ANDROID_${HOST}_ICU_UC:STRING="${ANDROID_ICU_UC}"
2015+
-DSWIFT_ANDROID_${HOST}_ICU_UC_INCLUDE:STRING="${ANDROID_ICU_UC_INCLUDE}"
2016+
-DSWIFT_ANDROID_${HOST}_ICU_I18N:STRING="${ANDROID_ICU_I18N}"
2017+
-DSWIFT_ANDROID_${HOST}_ICU_I18N_INCLUDE:STRING="${ANDROID_ICU_I18N_INCLUDE}"
20182018
-DSWIFT_ANDROID_DEPLOY_DEVICE_PATH:STRING="${ANDROID_DEPLOY_DEVICE_PATH}"
20192019
)
20202020
fi
@@ -2557,9 +2557,9 @@ for host in "${ALL_HOSTS[@]}"; do
25572557
export PKG_CONFIG_PATH="${ICU_TMPLIBDIR}/pkgconfig"
25582558
swift_cmake_options=(
25592559
"${swift_cmake_options[@]}"
2560-
-DSWIFT_${SWIFT_HOST_VARIANT_SDK}_ICU_UC_INCLUDE:STRING="${ICU_TMPINSTALL}/include"
2561-
-DSWIFT_${SWIFT_HOST_VARIANT_SDK}_ICU_I18N_INCLUDE:STRING="${ICU_TMPINSTALL}/include"
2562-
-DSWIFT_${SWIFT_HOST_VARIANT_SDK}_ICU_STATICLIB:BOOL=TRUE
2560+
-DSWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_UC_INCLUDE:STRING="${ICU_TMPINSTALL}/include"
2561+
-DSWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_I18N_INCLUDE:STRING="${ICU_TMPINSTALL}/include"
2562+
-DSWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_STATICLIB:BOOL=TRUE
25632563
)
25642564
# libicu builds itself and doesn't use cmake
25652565
continue

0 commit comments

Comments
 (0)