Skip to content

Commit 822eeb6

Browse files
committed
[CMake] Add support for building swift host libraries and tools on Android
1 parent 4cf2af5 commit 822eeb6

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

CMakeLists.txt

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,8 @@ else()
578578
set(SWIFT_HOST_VARIANT_SDK_default "WINDOWS")
579579
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Haiku")
580580
set(SWIFT_HOST_VARIANT_SDK_default "HAIKU")
581+
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Android")
582+
set(SWIFT_HOST_VARIANT_SDK_default "ANDROID")
581583
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
582584
set(SWIFT_HOST_VARIANT_SDK_default "OSX")
583585
else()
@@ -702,6 +704,15 @@ elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "HAIKU")
702704
set(SWIFT_PRIMARY_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK}")
703705
set(SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH}")
704706

707+
elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "ANDROID")
708+
709+
set(SWIFT_HOST_VARIANT "android" CACHE STRING
710+
"Deployment OS for Swift host tools (the compiler) [android].")
711+
712+
configure_sdk_unix("Android" "${SWIFT_HOST_VARIANT_ARCH}")
713+
set(SWIFT_PRIMARY_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK}")
714+
set(SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH}")
715+
705716
elseif("${SWIFT_HOST_VARIANT_SDK}" MATCHES "(OSX|IOS*|TVOS*|WATCHOS*)")
706717

707718
set(SWIFT_HOST_VARIANT "macosx" CACHE STRING
@@ -746,7 +757,10 @@ endif()
746757

747758
# Should we cross-compile the standard library for Android?
748759
is_sdk_requested(ANDROID swift_build_android)
749-
if(swift_build_android AND NOT "${SWIFT_ANDROID_NDK_PATH}" STREQUAL "")
760+
if(swift_build_android AND NOT "${SWIFT_HOST_VARIANT_SDK}" STREQUAL "ANDROID")
761+
if ("${SWIFT_ANDROID_NDK_PATH}" STREQUAL "")
762+
message(FATAL_ERROR "You must set SWIFT_ANDROID_NDK_PATH to cross-compile the Swift runtime for Android")
763+
endif()
750764
if (NOT ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Darwin" OR "${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Linux"))
751765
message(FATAL_ERROR "A Darwin or Linux host is required to build the Swift runtime for Android")
752766
endif()

0 commit comments

Comments
 (0)