diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake index 7b8ac7a995eba..c70e83ec49d1b 100644 --- a/cmake/modules/AddSwift.cmake +++ b/cmake/modules/AddSwift.cmake @@ -465,6 +465,10 @@ function(_add_variant_link_flags) set(android_libcxx_path "${SWIFT_ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a") elseif("${LFLAGS_ARCH}" MATCHES aarch64) set(android_libcxx_path "${SWIFT_ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++/libs/arm64-v8a") + elseif("${LFLAGS_ARCH}" MATCHES i686) + set(android_libcxx_path "${SWIFT_ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++/libs/x86") + elseif("${LFLAGS_ARCH}" MATCHES x86_64) + set(android_libcxx_path "${SWIFT_ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++/libs/x86_64") else() message(SEND_ERROR "unknown architecture (${LFLAGS_ARCH}) for android") endif() diff --git a/cmake/modules/SwiftAndroidSupport.cmake b/cmake/modules/SwiftAndroidSupport.cmake index c6dcc783c6809..f2070c4ebf4dd 100644 --- a/cmake/modules/SwiftAndroidSupport.cmake +++ b/cmake/modules/SwiftAndroidSupport.cmake @@ -23,6 +23,10 @@ function(swift_android_lib_for_arch arch var) list(APPEND paths "${_prebuilt}/${_host}/lib/armv7-a") elseif(arch STREQUAL aarch64) list(APPEND paths "${_prebuilt}/${_host}/lib64") + elseif(arch STREQUAL i686) + list(APPEND paths "${_prebuilt}/${_host}/lib") + elseif(arch STREQUAL x86_64) + list(APPEND paths "${_prebuilt}/${_host}/lib64") else() message(SEND_ERROR "unknown architecture (${arch}) for android") endif() diff --git a/cmake/modules/SwiftConfigureSDK.cmake b/cmake/modules/SwiftConfigureSDK.cmake index f5d77456dd434..339a5d739c318 100644 --- a/cmake/modules/SwiftConfigureSDK.cmake +++ b/cmake/modules/SwiftConfigureSDK.cmake @@ -186,6 +186,16 @@ macro(configure_sdk_unix name architectures) set(SWIFT_SDK_ANDROID_ARCH_${arch}_ALT_SPELLING "aarch64") set(SWIFT_SDK_ANDROID_ARCH_${arch}_PATH "${SWIFT_ANDROID_NDK_PATH}/platforms/android-${SWIFT_ANDROID_API_LEVEL}/arch-arm64") set(SWIFT_SDK_ANDROID_ARCH_${arch}_TRIPLE "aarch64-unknown-linux-android") + elseif("${arch}" STREQUAL "i686") + set(SWIFT_SDK_ANDROID_ARCH_${arch}_NDK_TRIPLE "i686-linux-android") + set(SWIFT_SDK_ANDROID_ARCH_${arch}_ALT_SPELLING "i686") + set(SWIFT_SDK_ANDROID_ARCH_${arch}_PATH "${SWIFT_ANDROID_NDK_PATH}/platforms/android-${SWIFT_ANDROID_API_LEVEL}/arch-x86") + set(SWIFT_SDK_ANDROID_ARCH_${arch}_TRIPLE "i686-unknown-linux-android") + elseif("${arch}" STREQUAL "x86_64") + set(SWIFT_SDK_ANDROID_ARCH_${arch}_NDK_TRIPLE "x86_64-linux-android") + set(SWIFT_SDK_ANDROID_ARCH_${arch}_ALT_SPELLING "x86_64") + set(SWIFT_SDK_ANDROID_ARCH_${arch}_PATH "${SWIFT_ANDROID_NDK_PATH}/platforms/android-${SWIFT_ANDROID_API_LEVEL}/arch-x86_64") + set(SWIFT_SDK_ANDROID_ARCH_${arch}_TRIPLE "x86_64-unknown-linux-android") else() message(FATAL_ERROR "unknown arch for android SDK: ${arch}") endif() @@ -196,8 +206,16 @@ macro(configure_sdk_unix name architectures) elseif("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Linux") set(_swift_android_prebuilt_build "linux-x86_64") endif() - set(SWIFT_SDK_ANDROID_ARCH_${arch}_NDK_PREBUILT_PATH + if("${arch}" STREQUAL "i686") + set(SWIFT_SDK_ANDROID_ARCH_${arch}_NDK_PREBUILT_PATH + "${SWIFT_ANDROID_NDK_PATH}/toolchains/x86-${SWIFT_ANDROID_NDK_GCC_VERSION}/prebuilt/${_swift_android_prebuilt_build}") + elseif("${arch}" STREQUAL "x86_64") + set(SWIFT_SDK_ANDROID_ARCH_${arch}_NDK_PREBUILT_PATH + "${SWIFT_ANDROID_NDK_PATH}/toolchains/x86_64-${SWIFT_ANDROID_NDK_GCC_VERSION}/prebuilt/${_swift_android_prebuilt_build}") + else() + set(SWIFT_SDK_ANDROID_ARCH_${arch}_NDK_PREBUILT_PATH "${SWIFT_ANDROID_NDK_PATH}/toolchains/${SWIFT_SDK_ANDROID_ARCH_${arch}_NDK_TRIPLE}-${SWIFT_ANDROID_NDK_GCC_VERSION}/prebuilt/${_swift_android_prebuilt_build}") + endif() else() if(NOT SWIFT_SDK_${prefix}_ARCH_${arch}_PATH) set(SWIFT_SDK_${prefix}_ARCH_${arch}_PATH "/")