Skip to content

Commit 87a403e

Browse files
authored
[Concurrency] Fix Android ARMv7 C libdispatch build (swiftlang#35905)
For cross-compiling Android one can simply provide CMAKE_ANDROID_ARCH_ABI and the right CMAKE_SYSTEM_PROCESSOR will be chosen by CMake. Since the SDK arch names are not the expected ones by the Android NDK, it is better not to use them. The change should keep sending the CMAKE_SYSTEM_PROCESSOR for SDKs that are not ANDROID, while skipping it for the ANDROID SDKs.
1 parent bfa14b9 commit 87a403e

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

cmake/modules/Libdispatch.cmake

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ foreach(sdk ${DISPATCH_SDKS})
6565
foreach(arch ${ARCHS})
6666
set(LIBDISPATCH_VARIANT_NAME "libdispatch-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}")
6767

68+
if(NOT sdk STREQUAL ANDROID)
69+
set(SWIFT_LIBDISPATCH_SYSTEM_PROCESSOR -DCMAKE_SYSTEM_PROCESSOR=${arch})
70+
endif()
71+
6872
ExternalProject_Add("${LIBDISPATCH_VARIANT_NAME}"
6973
SOURCE_DIR
7074
"${SWIFT_PATH_TO_LIBDISPATCH_SOURCE}"
@@ -81,7 +85,7 @@ foreach(sdk ${DISPATCH_SDKS})
8185
-DCMAKE_RANLIB=${CMAKE_RANLIB}
8286
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
8387
-DCMAKE_SYSTEM_NAME=${SWIFT_SDK_${sdk}_NAME}
84-
-DCMAKE_SYSTEM_PROCESSOR=${arch}
88+
${SWIFT_LIBDISPATCH_SYSTEM_PROCESSOR}
8589
"-DCMAKE_ANDROID_NDK=${SWIFT_ANDROID_NDK_PATH}"
8690
-DCMAKE_ANDROID_ARCH_ABI=${SWIFT_SDK_ANDROID_ARCH_${arch}_ABI}
8791
-DCMAKE_ANDROID_API=${SWIFT_ANDROID_API_LEVEL}
@@ -157,7 +161,7 @@ foreach(sdk ${DISPATCH_SDKS})
157161
-DCMAKE_RANLIB=${CMAKE_RANLIB}
158162
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
159163
-DCMAKE_SYSTEM_NAME=${SWIFT_SDK_${sdk}_NAME}
160-
-DCMAKE_SYSTEM_PROCESSOR=${arch}
164+
${SWIFT_LIBDISPATCH_SYSTEM_PROCESSOR}
161165
"-DCMAKE_ANDROID_NDK=${SWIFT_ANDROID_NDK_PATH}"
162166
-DCMAKE_ANDROID_ARCH_ABI=${SWIFT_SDK_ANDROID_ARCH_${arch}_ABI}
163167
-DCMAKE_ANDROID_API=${SWIFT_ANDROID_API_LEVEL}

0 commit comments

Comments
 (0)