Skip to content

Commit 81e3c76

Browse files
committed
[build] Simplify setting SWIFT_HOST_VARIANT and related variables
In the majority of cases, we can derive the value of SWIFT_HOST_VARIANT, SWIFT_HOST_VARIANT_SDK, and SWIFT_HOST_VARIANT_ARCH from the value of `host` itself. The goal of this patch is to make those derivations and avoid lots of manual setting of values. Because we verify that we have a valid host before doing this, we can be sure that errors should be caught before we try to deconstruct the host into platform and architecture values. For situations where you can't derive those values from the host, we leave existing behavior -- that is, we handle them in a switch statement.
1 parent 24d191d commit 81e3c76

File tree

1 file changed

+16
-80
lines changed

1 file changed

+16
-80
lines changed

utils/build-script-impl

Lines changed: 16 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -443,60 +443,28 @@ function set_build_options_for_host() {
443443
local host="$1"
444444

445445
# Hosts which can be cross-compiled must specify:
446-
# SWIFT_HOST_TRIPLE and llvm_target_arch (as well as usual HOST_VARIANT flags)
446+
# SWIFT_HOST_TRIPLE and llvm_target_arch.
447+
# Hosts which have differing platforn names from their
448+
# SWIFT_HOST_VARIANT_* values should change them here as well.
447449

448450
verify_host_is_supported $host
449451

452+
local platform=${host%%-*}
453+
local architecture=${host##*-}
454+
455+
SWIFT_HOST_VARIANT=$platform
456+
SWIFT_HOST_VARIANT_SDK=$(toupper $platform)
457+
SWIFT_HOST_VARIANT_ARCH=$architecture
458+
450459
case ${host} in
451-
freebsd-x86_64)
452-
SWIFT_HOST_VARIANT="freebsd"
453-
SWIFT_HOST_VARIANT_SDK="FREEBSD"
454-
SWIFT_HOST_VARIANT_ARCH="x86_64"
455-
;;
456-
cygwin-x86_64)
457-
SWIFT_HOST_VARIANT="cygwin"
458-
SWIFT_HOST_VARIANT_SDK="CYGWIN"
459-
SWIFT_HOST_VARIANT_ARCH="x86_64"
460+
linux-armv6)
461+
SWIFT_HOST_TRIPLE="armv6-unknown-linux-gnueabihf"
462+
llvm_target_arch="ARM"
460463
;;
461-
haiku-x86_64)
462-
SWIFT_HOST_VARIANT="haiku"
463-
SWIFT_HOST_VARIANT_SDK="HAIKU"
464-
SWIFT_HOST_VARIANT_ARCH="x86_64"
464+
linux-armv7)
465+
SWIFT_HOST_TRIPLE="armv7-unknown-linux-gnueabihf"
466+
llvm_target_arch="ARM"
465467
;;
466-
linux-*)
467-
SWIFT_HOST_VARIANT="linux"
468-
SWIFT_HOST_VARIANT_SDK="LINUX"
469-
case ${host} in
470-
linux-x86_64)
471-
SWIFT_HOST_VARIANT_ARCH="x86_64"
472-
;;
473-
linux-i686)
474-
SWIFT_HOST_VARIANT_ARCH="i686"
475-
;;
476-
linux-armv6)
477-
SWIFT_HOST_VARIANT_ARCH="armv6"
478-
SWIFT_HOST_TRIPLE="armv6-unknown-linux-gnueabihf"
479-
llvm_target_arch="ARM"
480-
;;
481-
linux-armv7)
482-
SWIFT_HOST_VARIANT_ARCH="armv7"
483-
SWIFT_HOST_TRIPLE="armv7-unknown-linux-gnueabihf"
484-
llvm_target_arch="ARM"
485-
;;
486-
linux-aarch64)
487-
SWIFT_HOST_VARIANT_ARCH="aarch64"
488-
;;
489-
linux-powerpc64)
490-
SWIFT_HOST_VARIANT_ARCH="powerpc64"
491-
;;
492-
linux-powerpc64le)
493-
SWIFT_HOST_VARIANT_ARCH="powerpc64le"
494-
;;
495-
linux-s390x)
496-
SWIFT_HOST_VARIANT_ARCH="s390x"
497-
;;
498-
esac
499-
;;
500468
macosx-* | iphoneos-* | iphonesimulator-* | \
501469
appletvos-* | appletvsimulator-* | \
502470
watchos-* | watchsimulator-*)
@@ -505,90 +473,70 @@ function set_build_options_for_host() {
505473
xcrun_sdk_name="macosx"
506474
llvm_target_arch=""
507475
SWIFT_HOST_TRIPLE="x86_64-apple-macosx${DARWIN_DEPLOYMENT_VERSION_OSX}"
508-
SWIFT_HOST_VARIANT="macosx"
509476
SWIFT_HOST_VARIANT_SDK="OSX"
510-
SWIFT_HOST_VARIANT_ARCH="x86_64"
511477
cmake_osx_deployment_target="${DARWIN_DEPLOYMENT_VERSION_OSX}"
512478
;;
513479
iphonesimulator-i386)
514480
xcrun_sdk_name="iphonesimulator"
515481
llvm_target_arch="X86"
516482
SWIFT_HOST_TRIPLE="i386-apple-ios${DARWIN_DEPLOYMENT_VERSION_IOS}"
517-
SWIFT_HOST_VARIANT="iphonesimulator"
518483
SWIFT_HOST_VARIANT_SDK="IOS_SIMULATOR"
519-
SWIFT_HOST_VARIANT_ARCH="i386"
520484
cmake_osx_deployment_target=""
521485
;;
522486
iphonesimulator-x86_64)
523487
xcrun_sdk_name="iphonesimulator"
524488
llvm_target_arch="X86"
525489
SWIFT_HOST_TRIPLE="x86_64-apple-ios${DARWIN_DEPLOYMENT_VERSION_IOS}"
526-
SWIFT_HOST_VARIANT="iphonesimulator"
527490
SWIFT_HOST_VARIANT_SDK="IOS_SIMULATOR"
528-
SWIFT_HOST_VARIANT_ARCH="x86_64"
529491
cmake_osx_deployment_target=""
530492
;;
531493
iphoneos-armv7)
532494
xcrun_sdk_name="iphoneos"
533495
llvm_target_arch="ARM"
534496
SWIFT_HOST_TRIPLE="armv7-apple-ios${DARWIN_DEPLOYMENT_VERSION_IOS}"
535-
SWIFT_HOST_VARIANT="iphoneos"
536497
SWIFT_HOST_VARIANT_SDK="IOS"
537-
SWIFT_HOST_VARIANT_ARCH="armv7"
538498
cmake_osx_deployment_target=""
539499
;;
540500
iphoneos-armv7s)
541501
xcrun_sdk_name="iphoneos"
542502
llvm_target_arch="ARM"
543503
SWIFT_HOST_TRIPLE="armv7s-apple-ios${DARWIN_DEPLOYMENT_VERSION_IOS}"
544-
SWIFT_HOST_VARIANT="iphoneos"
545504
SWIFT_HOST_VARIANT_SDK="IOS"
546-
SWIFT_HOST_VARIANT_ARCH="armv7s"
547505
cmake_osx_deployment_target=""
548506
;;
549507
iphoneos-arm64)
550508
xcrun_sdk_name="iphoneos"
551509
llvm_target_arch="AArch64"
552510
SWIFT_HOST_TRIPLE="arm64-apple-ios${DARWIN_DEPLOYMENT_VERSION_IOS}"
553-
SWIFT_HOST_VARIANT="iphoneos"
554511
SWIFT_HOST_VARIANT_SDK="IOS"
555-
SWIFT_HOST_VARIANT_ARCH="arm64"
556512
cmake_osx_deployment_target=""
557513
;;
558514
appletvsimulator-x86_64)
559515
xcrun_sdk_name="appletvsimulator"
560516
llvm_target_arch="X86"
561517
SWIFT_HOST_TRIPLE="x86_64-apple-tvos${DARWIN_DEPLOYMENT_VERSION_TVOS}"
562-
SWIFT_HOST_VARIANT="appletvsimulator"
563518
SWIFT_HOST_VARIANT_SDK="TVOS_SIMULATOR"
564-
SWIFT_HOST_VARIANT_ARCH="x86_64"
565519
cmake_osx_deployment_target=""
566520
;;
567521
appletvos-arm64)
568522
xcrun_sdk_name="appletvos"
569523
llvm_target_arch="AArch64"
570524
SWIFT_HOST_TRIPLE="arm64-apple-tvos${DARWIN_DEPLOYMENT_VERSION_TVOS}"
571-
SWIFT_HOST_VARIANT="appletvos"
572525
SWIFT_HOST_VARIANT_SDK="TVOS"
573-
SWIFT_HOST_VARIANT_ARCH="arm64"
574526
cmake_osx_deployment_target=""
575527
;;
576528
watchsimulator-i386)
577529
xcrun_sdk_name="watchsimulator"
578530
llvm_target_arch="X86"
579531
SWIFT_HOST_TRIPLE="i386-apple-watchos${DARWIN_DEPLOYMENT_VERSION_WATCHOS}"
580-
SWIFT_HOST_VARIANT="watchsimulator"
581532
SWIFT_HOST_VARIANT_SDK="WATCHOS_SIMULATOR"
582-
SWIFT_HOST_VARIANT_ARCH="i386"
583533
cmake_osx_deployment_target=""
584534
;;
585535
watchos-armv7k)
586536
xcrun_sdk_name="watchos"
587537
llvm_target_arch="ARM"
588538
SWIFT_HOST_TRIPLE="armv7k-apple-watchos${DARWIN_DEPLOYMENT_VERSION_WATCHOS}"
589-
SWIFT_HOST_VARIANT="watchos"
590539
SWIFT_HOST_VARIANT_SDK="WATCHOS"
591-
SWIFT_HOST_VARIANT_ARCH="armv7k"
592540
cmake_osx_deployment_target=""
593541
;;
594542
esac
@@ -658,18 +606,6 @@ function set_build_options_for_host() {
658606
-DSWIFT_DARWIN_DEPLOYMENT_VERSION_WATCHOS="${DARWIN_DEPLOYMENT_VERSION_WATCHOS}"
659607
)
660608
;;
661-
android-*)
662-
SWIFT_HOST_VARIANT="android"
663-
SWIFT_HOST_VARIANT_SDK="ANDROID"
664-
case ${host} in
665-
android-armv7)
666-
SWIFT_HOST_VARIANT_ARCH="armv7"
667-
;;
668-
android-aarch64)
669-
SWIFT_HOST_VARIANT_ARCH="aarch64"
670-
;;
671-
esac
672-
;;
673609
esac
674610

675611

0 commit comments

Comments
 (0)