@@ -566,23 +566,6 @@ if("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "LINUX")
566
566
set (SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH} " )
567
567
endif ()
568
568
569
- # Compatible cross-compile SDKS for LINUX: ANDROID (arch always armv7)
570
- is_sdk_requested (ANDROID swift_build_android )
571
- if ("${SWIFT_ANDROID_NDK_PATH} " STREQUAL "" )
572
- set (swift_can_crosscompile_stdlib_android FALSE )
573
- else ()
574
- set (swift_can_crosscompile_stdlib_android TRUE )
575
- endif ()
576
-
577
- if (swift_build_android AND ${swift_can_crosscompile_stdlib_android} )
578
- configure_sdk_unix (ANDROID "Android" "android" "android" "armv7" "armv7-none-linux-androideabi" "${SWIFT_ANDROID_SDK_PATH} " )
579
- # If we're not building for the host, the cross-compiled target should be the 'primary variant'.
580
- if ("${swift_build_linux} " STREQUAL "FALSE" )
581
- set (SWIFT_PRIMARY_VARIANT_SDK_default "ANDROID" )
582
- set (SWIFT_PRIMARY_VARIANT_ARCH_default "armv7" )
583
- endif ()
584
- endif ()
585
-
586
569
elseif ("${SWIFT_HOST_VARIANT_SDK} " STREQUAL "FREEBSD" )
587
570
588
571
set (CMAKE_EXECUTABLE_FORMAT "ELF" )
@@ -727,6 +710,28 @@ if("${SWIFT_PRIMARY_VARIANT_ARCH}" STREQUAL "")
727
710
set (SWIFT_PRIMARY_VARIANT_ARCH "${SWIFT_PRIMARY_VARIANT_ARCH_default} " )
728
711
endif ()
729
712
713
+ # Should we cross-compile the standard library for Android?
714
+ is_sdk_requested (ANDROID swift_build_android )
715
+ if (swift_build_android AND NOT "${SWIFT_ANDROID_NDK_PATH} " STREQUAL "" )
716
+ configure_sdk_unix (ANDROID "Android" "android" "android" "armv7" "armv7-none-linux-androideabi" "${SWIFT_ANDROID_SDK_PATH} " )
717
+
718
+ if (NOT ("${CMAKE_SYSTEM_NAME} " STREQUAL "Darwin" OR "${CMAKE_SYSTEM_NAME} " STREQUAL "Linux" ))
719
+ message (FATAL_ERROR "A Darwin or Linux host is required to build the Swift runtime for Android" )
720
+ elseif (("${CMAKE_SYSTEM_NAME} " STREQUAL "Darwin" AND NOT swift_build_osx ) OR
721
+ ("${CMAKE_SYSTEM_NAME} " STREQUAL "Linux" AND NOT swift_build_linux ))
722
+ set (SWIFT_PRIMARY_VARIANT_SDK_default "ANDROID" )
723
+ set (SWIFT_PRIMARY_VARIANT_ARCH_default "armv7" )
724
+ endif ()
725
+
726
+ if ("${CMAKE_SYSTEM_NAME} " STREQUAL "Darwin" )
727
+ set (_swift_android_prebuilt_suffix "darwin-x86_64" )
728
+ elseif ("${CMAKE_SYSTEM_NAME} " STREQUAL "Linux" )
729
+ set (_swift_android_prebuilt_suffix "linux-x86_64" )
730
+ endif ()
731
+ set (SWIFT_ANDROID_PREBUILT_PATH
732
+ "${SWIFT_ANDROID_NDK_PATH} /toolchains/arm-linux-androideabi-${SWIFT_ANDROID_NDK_GCC_VERSION} /prebuilt/${_swift_android_prebuilt_suffix} " )
733
+ endif ()
734
+
730
735
# Should we cross-compile the standard library for Windows?
731
736
is_sdk_requested (WINDOWS swift_build_windows )
732
737
if (swift_build_windows )
0 commit comments