Skip to content

Commit d53b5b2

Browse files
committed
CMake: more reliably disable cross-compilation in Xcode
Don't try to cross-compile even when an explicit SDK list is passed.
1 parent 7a0a44e commit d53b5b2

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

CMakeLists.txt

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,13 @@ function(is_sdk_requested name result_var_name)
478478
endif()
479479
endfunction()
480480

481+
if(XCODE)
482+
# FIXME: Cannot cross-compile the standard library using Xcode. Xcode
483+
# insists on passing -mmacosx-version-min to the compiler, and we need
484+
# to pass -mios-version-min. Clang sees both options and complains.
485+
set(SWIFT_SDKS "OSX")
486+
endif()
487+
481488
# FIXME: the parameters we specify in SWIFT_SDKS are lacking architecture specifics,
482489
# so we need to hard-code it. For example, the SDK for Android is just 'ANDROID',
483490
# which we assume below to be armv7.
@@ -592,17 +599,8 @@ elseif("${SWIFT_HOST_VARIANT_SDK}" MATCHES "(OSX|IOS*|TVOS*|WATCHOS*)")
592599
# Compatible cross-compile SDKS for Darwin OSes: IOS, IOS_SIMULATOR, TVOS,
593600
# TVOS_SIMULATOR, WATCHOS, WATCHOS_SIMULATOR (archs hardcoded below).
594601

595-
if(XCODE)
596-
# FIXME: Cannot cross-compile stdlib using Xcode. Xcode insists on
597-
# passing -mmacosx-version-min to the compiler, and we want to pass
598-
# -mios-version-min. Clang sees both options and complains.
599-
set(swift_can_crosscompile_stdlib FALSE)
600-
else()
601-
set(swift_can_crosscompile_stdlib TRUE)
602-
endif()
603-
604602
is_sdk_requested(IOS swift_build_ios)
605-
if(swift_build_ios AND ${swift_can_crosscompile_stdlib})
603+
if(swift_build_ios)
606604
configure_sdk_darwin(
607605
IOS "iOS" "${SWIFT_DARWIN_DEPLOYMENT_VERSION_IOS}"
608606
iphoneos ios ios "armv7;armv7s;arm64")
@@ -612,7 +610,7 @@ elseif("${SWIFT_HOST_VARIANT_SDK}" MATCHES "(OSX|IOS*|TVOS*|WATCHOS*)")
612610
endif()
613611

614612
is_sdk_requested(IOS_SIMULATOR swift_build_ios_simulator)
615-
if(swift_build_ios_simulator AND ${swift_can_crosscompile_stdlib})
613+
if(swift_build_ios_simulator)
616614
configure_sdk_darwin(
617615
IOS_SIMULATOR "iOS Simulator" "${SWIFT_DARWIN_DEPLOYMENT_VERSION_IOS}"
618616
iphonesimulator ios-simulator ios "i386;x86_64")
@@ -625,7 +623,7 @@ elseif("${SWIFT_HOST_VARIANT_SDK}" MATCHES "(OSX|IOS*|TVOS*|WATCHOS*)")
625623
endif()
626624

627625
is_sdk_requested(TVOS swift_build_tvos)
628-
if(swift_build_tvos AND ${swift_can_crosscompile_stdlib})
626+
if(swift_build_tvos)
629627
configure_sdk_darwin(
630628
TVOS "tvOS" "${SWIFT_DARWIN_DEPLOYMENT_VERSION_TVOS}"
631629
appletvos tvos tvos "arm64")
@@ -635,7 +633,7 @@ elseif("${SWIFT_HOST_VARIANT_SDK}" MATCHES "(OSX|IOS*|TVOS*|WATCHOS*)")
635633
endif()
636634

637635
is_sdk_requested(TVOS_SIMULATOR swift_build_tvos_simulator)
638-
if(swift_build_tvos_simulator AND ${swift_can_crosscompile_stdlib})
636+
if(swift_build_tvos_simulator)
639637
configure_sdk_darwin(
640638
TVOS_SIMULATOR "tvOS Simulator" "${SWIFT_DARWIN_DEPLOYMENT_VERSION_TVOS}"
641639
appletvsimulator tvos-simulator tvos "x86_64")
@@ -648,7 +646,7 @@ elseif("${SWIFT_HOST_VARIANT_SDK}" MATCHES "(OSX|IOS*|TVOS*|WATCHOS*)")
648646
endif()
649647

650648
is_sdk_requested(WATCHOS swift_build_watchos)
651-
if(swift_build_watchos AND ${swift_can_crosscompile_stdlib})
649+
if(swift_build_watchos)
652650
configure_sdk_darwin(
653651
WATCHOS "watchOS" "${SWIFT_DARWIN_DEPLOYMENT_VERSION_WATCHOS}"
654652
watchos watchos watchos "armv7k")
@@ -658,7 +656,7 @@ elseif("${SWIFT_HOST_VARIANT_SDK}" MATCHES "(OSX|IOS*|TVOS*|WATCHOS*)")
658656
endif()
659657

660658
is_sdk_requested(WATCHOS_SIMULATOR swift_build_watchos_simulator)
661-
if(swift_build_watchos_simulator AND ${swift_can_crosscompile_stdlib})
659+
if(swift_build_watchos_simulator)
662660
configure_sdk_darwin(
663661
WATCHOS_SIMULATOR "watchOS Simulator" "${SWIFT_DARWIN_DEPLOYMENT_VERSION_WATCHOS}"
664662
watchsimulator watchos-simulator watchos "i386")

0 commit comments

Comments
 (0)