Skip to content

Commit 4576c88

Browse files
authored
Merge pull request swiftlang#28687 from xiaobai/cleaning-up-host-build-options
[build] Reduce complexity in setting up build options
2 parents 5ba2e59 + 81e3c76 commit 4576c88

File tree

1 file changed

+52
-88
lines changed

1 file changed

+52
-88
lines changed

utils/build-script-impl

Lines changed: 52 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,40 @@ function should_execute_host_actions_for_phase() {
397397
fi
398398
}
399399

400+
function verify_host_is_supported() {
401+
local host="$1"
402+
case ${host} in
403+
freebsd-x86_64 \
404+
| cygwin-x86_64 \
405+
| haiku-x86_64 \
406+
| linux-x86_64 \
407+
| linux-i686 \
408+
| linux-armv6 \
409+
| linux-armv7 \
410+
| linux-aarch64 \
411+
| linux-powerpc64 \
412+
| linux-powerpc64le \
413+
| linux-s390x \
414+
| macosx-x86_64 \
415+
| iphonesimulator-i386 \
416+
| iphonesimulator-x86_64 \
417+
| iphoneos-armv7 \
418+
| iphoneos-armv7s \
419+
| iphoneos-arm64 \
420+
| appletvsimulator-x86_64 \
421+
| appletvos-arm64 \
422+
| watchsimulator-i386 \
423+
| watchos-armv7k \
424+
| android-armv7 \
425+
| android-aarch64)
426+
;;
427+
*)
428+
echo "Unknown host tools target: ${host}"
429+
exit 1
430+
;;
431+
esac
432+
}
433+
400434
function set_build_options_for_host() {
401435
llvm_cmake_options=()
402436
swift_cmake_options=()
@@ -409,58 +443,28 @@ function set_build_options_for_host() {
409443
local host="$1"
410444

411445
# Hosts which can be cross-compiled must specify:
412-
# 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.
449+
450+
verify_host_is_supported $host
451+
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
413458

414459
case ${host} in
415-
freebsd-x86_64)
416-
SWIFT_HOST_VARIANT="freebsd"
417-
SWIFT_HOST_VARIANT_SDK="FREEBSD"
418-
SWIFT_HOST_VARIANT_ARCH="x86_64"
419-
;;
420-
cygwin-x86_64)
421-
SWIFT_HOST_VARIANT="cygwin"
422-
SWIFT_HOST_VARIANT_SDK="CYGWIN"
423-
SWIFT_HOST_VARIANT_ARCH="x86_64"
460+
linux-armv6)
461+
SWIFT_HOST_TRIPLE="armv6-unknown-linux-gnueabihf"
462+
llvm_target_arch="ARM"
424463
;;
425-
haiku-x86_64)
426-
SWIFT_HOST_VARIANT="haiku"
427-
SWIFT_HOST_VARIANT_SDK="HAIKU"
428-
SWIFT_HOST_VARIANT_ARCH="x86_64"
464+
linux-armv7)
465+
SWIFT_HOST_TRIPLE="armv7-unknown-linux-gnueabihf"
466+
llvm_target_arch="ARM"
429467
;;
430-
linux-*)
431-
SWIFT_HOST_VARIANT="linux"
432-
SWIFT_HOST_VARIANT_SDK="LINUX"
433-
case ${host} in
434-
linux-x86_64)
435-
SWIFT_HOST_VARIANT_ARCH="x86_64"
436-
;;
437-
linux-i686)
438-
SWIFT_HOST_VARIANT_ARCH="i686"
439-
;;
440-
linux-armv6)
441-
SWIFT_HOST_VARIANT_ARCH="armv6"
442-
SWIFT_HOST_TRIPLE="armv6-unknown-linux-gnueabihf"
443-
llvm_target_arch="ARM"
444-
;;
445-
linux-armv7)
446-
SWIFT_HOST_VARIANT_ARCH="armv7"
447-
SWIFT_HOST_TRIPLE="armv7-unknown-linux-gnueabihf"
448-
llvm_target_arch="ARM"
449-
;;
450-
linux-aarch64)
451-
SWIFT_HOST_VARIANT_ARCH="aarch64"
452-
;;
453-
linux-powerpc64)
454-
SWIFT_HOST_VARIANT_ARCH="powerpc64"
455-
;;
456-
linux-powerpc64le)
457-
SWIFT_HOST_VARIANT_ARCH="powerpc64le"
458-
;;
459-
linux-s390x)
460-
SWIFT_HOST_VARIANT_ARCH="s390x"
461-
;;
462-
esac
463-
;;
464468
macosx-* | iphoneos-* | iphonesimulator-* | \
465469
appletvos-* | appletvsimulator-* | \
466470
watchos-* | watchsimulator-*)
@@ -469,96 +473,72 @@ function set_build_options_for_host() {
469473
xcrun_sdk_name="macosx"
470474
llvm_target_arch=""
471475
SWIFT_HOST_TRIPLE="x86_64-apple-macosx${DARWIN_DEPLOYMENT_VERSION_OSX}"
472-
SWIFT_HOST_VARIANT="macosx"
473476
SWIFT_HOST_VARIANT_SDK="OSX"
474-
SWIFT_HOST_VARIANT_ARCH="x86_64"
475477
cmake_osx_deployment_target="${DARWIN_DEPLOYMENT_VERSION_OSX}"
476478
;;
477479
iphonesimulator-i386)
478480
xcrun_sdk_name="iphonesimulator"
479481
llvm_target_arch="X86"
480482
SWIFT_HOST_TRIPLE="i386-apple-ios${DARWIN_DEPLOYMENT_VERSION_IOS}"
481-
SWIFT_HOST_VARIANT="iphonesimulator"
482483
SWIFT_HOST_VARIANT_SDK="IOS_SIMULATOR"
483-
SWIFT_HOST_VARIANT_ARCH="i386"
484484
cmake_osx_deployment_target=""
485485
;;
486486
iphonesimulator-x86_64)
487487
xcrun_sdk_name="iphonesimulator"
488488
llvm_target_arch="X86"
489489
SWIFT_HOST_TRIPLE="x86_64-apple-ios${DARWIN_DEPLOYMENT_VERSION_IOS}"
490-
SWIFT_HOST_VARIANT="iphonesimulator"
491490
SWIFT_HOST_VARIANT_SDK="IOS_SIMULATOR"
492-
SWIFT_HOST_VARIANT_ARCH="x86_64"
493491
cmake_osx_deployment_target=""
494492
;;
495493
iphoneos-armv7)
496494
xcrun_sdk_name="iphoneos"
497495
llvm_target_arch="ARM"
498496
SWIFT_HOST_TRIPLE="armv7-apple-ios${DARWIN_DEPLOYMENT_VERSION_IOS}"
499-
SWIFT_HOST_VARIANT="iphoneos"
500497
SWIFT_HOST_VARIANT_SDK="IOS"
501-
SWIFT_HOST_VARIANT_ARCH="armv7"
502498
cmake_osx_deployment_target=""
503499
;;
504500
iphoneos-armv7s)
505501
xcrun_sdk_name="iphoneos"
506502
llvm_target_arch="ARM"
507503
SWIFT_HOST_TRIPLE="armv7s-apple-ios${DARWIN_DEPLOYMENT_VERSION_IOS}"
508-
SWIFT_HOST_VARIANT="iphoneos"
509504
SWIFT_HOST_VARIANT_SDK="IOS"
510-
SWIFT_HOST_VARIANT_ARCH="armv7s"
511505
cmake_osx_deployment_target=""
512506
;;
513507
iphoneos-arm64)
514508
xcrun_sdk_name="iphoneos"
515509
llvm_target_arch="AArch64"
516510
SWIFT_HOST_TRIPLE="arm64-apple-ios${DARWIN_DEPLOYMENT_VERSION_IOS}"
517-
SWIFT_HOST_VARIANT="iphoneos"
518511
SWIFT_HOST_VARIANT_SDK="IOS"
519-
SWIFT_HOST_VARIANT_ARCH="arm64"
520512
cmake_osx_deployment_target=""
521513
;;
522514
appletvsimulator-x86_64)
523515
xcrun_sdk_name="appletvsimulator"
524516
llvm_target_arch="X86"
525517
SWIFT_HOST_TRIPLE="x86_64-apple-tvos${DARWIN_DEPLOYMENT_VERSION_TVOS}"
526-
SWIFT_HOST_VARIANT="appletvsimulator"
527518
SWIFT_HOST_VARIANT_SDK="TVOS_SIMULATOR"
528-
SWIFT_HOST_VARIANT_ARCH="x86_64"
529519
cmake_osx_deployment_target=""
530520
;;
531521
appletvos-arm64)
532522
xcrun_sdk_name="appletvos"
533523
llvm_target_arch="AArch64"
534524
SWIFT_HOST_TRIPLE="arm64-apple-tvos${DARWIN_DEPLOYMENT_VERSION_TVOS}"
535-
SWIFT_HOST_VARIANT="appletvos"
536525
SWIFT_HOST_VARIANT_SDK="TVOS"
537-
SWIFT_HOST_VARIANT_ARCH="arm64"
538526
cmake_osx_deployment_target=""
539527
;;
540528
watchsimulator-i386)
541529
xcrun_sdk_name="watchsimulator"
542530
llvm_target_arch="X86"
543531
SWIFT_HOST_TRIPLE="i386-apple-watchos${DARWIN_DEPLOYMENT_VERSION_WATCHOS}"
544-
SWIFT_HOST_VARIANT="watchsimulator"
545532
SWIFT_HOST_VARIANT_SDK="WATCHOS_SIMULATOR"
546-
SWIFT_HOST_VARIANT_ARCH="i386"
547533
cmake_osx_deployment_target=""
548534
;;
549535
watchos-armv7k)
550536
xcrun_sdk_name="watchos"
551537
llvm_target_arch="ARM"
552538
SWIFT_HOST_TRIPLE="armv7k-apple-watchos${DARWIN_DEPLOYMENT_VERSION_WATCHOS}"
553-
SWIFT_HOST_VARIANT="watchos"
554539
SWIFT_HOST_VARIANT_SDK="WATCHOS"
555-
SWIFT_HOST_VARIANT_ARCH="armv7k"
556540
cmake_osx_deployment_target=""
557541
;;
558-
*)
559-
echo "Unknown host for swift tools: ${host}"
560-
exit 1
561-
;;
562542
esac
563543

564544
if [[ "${DARWIN_SDK_DEPLOYMENT_TARGETS}" != "" ]]; then
@@ -626,22 +606,6 @@ function set_build_options_for_host() {
626606
-DSWIFT_DARWIN_DEPLOYMENT_VERSION_WATCHOS="${DARWIN_DEPLOYMENT_VERSION_WATCHOS}"
627607
)
628608
;;
629-
android-*)
630-
SWIFT_HOST_VARIANT="android"
631-
SWIFT_HOST_VARIANT_SDK="ANDROID"
632-
case ${host} in
633-
android-armv7)
634-
SWIFT_HOST_VARIANT_ARCH="armv7"
635-
;;
636-
android-aarch64)
637-
SWIFT_HOST_VARIANT_ARCH="aarch64"
638-
;;
639-
esac
640-
;;
641-
*)
642-
echo "Unknown host tools target: ${host}"
643-
exit 1
644-
;;
645609
esac
646610

647611

0 commit comments

Comments
 (0)