Skip to content

Commit 885ef36

Browse files
committed
[Apple Silicon] Support building for macOS arm64/arm64e
1 parent 781aa53 commit 885ef36

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

cmake/modules/DarwinSDKs.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ set(SUPPORTED_TVOS_ARCHS "arm64")
1414
set(SUPPORTED_TVOS_SIMULATOR_ARCHS "x86_64")
1515
set(SUPPORTED_WATCHOS_ARCHS "armv7k")
1616
set(SUPPORTED_WATCHOS_SIMULATOR_ARCHS "i386")
17-
set(SUPPORTED_OSX_ARCHS "x86_64")
17+
set(SUPPORTED_OSX_ARCHS "x86_64;arm64;arm64e")
1818

1919
is_sdk_requested(OSX swift_build_osx)
2020
if(swift_build_osx)

utils/build-script-impl

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,8 @@ function verify_host_is_supported() {
416416
| linux-powerpc64le \
417417
| linux-s390x \
418418
| macosx-x86_64 \
419+
| macosx-arm64 \
420+
| macosx-arm64e \
419421
| iphonesimulator-i386 \
420422
| iphonesimulator-x86_64 \
421423
| iphoneos-armv7 \
@@ -493,6 +495,24 @@ function set_build_options_for_host() {
493495
SWIFT_HOST_VARIANT_SDK="OSX"
494496
cmake_osx_deployment_target="${DARWIN_DEPLOYMENT_VERSION_OSX}"
495497
;;
498+
macosx-arm64)
499+
xcrun_sdk_name="macosx"
500+
llvm_target_arch="AArch64"
501+
SWIFT_HOST_TRIPLE="arm64-apple-macosx${DARWIN_DEPLOYMENT_VERSION_OSX}"
502+
SWIFT_HOST_VARIANT="macosx"
503+
SWIFT_HOST_VARIANT_SDK="OSX"
504+
SWIFT_HOST_VARIANT_ARCH="arm64"
505+
cmake_osx_deployment_target="${DARWIN_DEPLOYMENT_VERSION_OSX}"
506+
;;
507+
macosx-arm64e)
508+
xcrun_sdk_name="macosx"
509+
llvm_target_arch="AArch64"
510+
SWIFT_HOST_TRIPLE="arm64e-apple-macosx${DARWIN_DEPLOYMENT_VERSION_OSX}"
511+
SWIFT_HOST_VARIANT="macosx"
512+
SWIFT_HOST_VARIANT_SDK="OSX"
513+
SWIFT_HOST_VARIANT_ARCH="arm64e"
514+
cmake_osx_deployment_target="${DARWIN_DEPLOYMENT_VERSION_OSX}"
515+
;;
496516
iphonesimulator-i386)
497517
SWIFT_HOST_TRIPLE="i386-apple-ios${DARWIN_DEPLOYMENT_VERSION_IOS}-simulator"
498518
llvm_target_arch="X86"
@@ -920,7 +940,7 @@ function false_true() {
920940
CROSS_COMPILE_HOSTS=($CROSS_COMPILE_HOSTS)
921941
for t in "${CROSS_COMPILE_HOSTS[@]}"; do
922942
case ${t} in
923-
iphone* | appletv* | watch* | linux-armv6 | linux-armv7 )
943+
macosx-arm64* | iphone* | appletv* | watch* | linux-armv6 | linux-armv7 )
924944
;;
925945
*)
926946
echo "Unknown host to cross-compile for: ${t}"
@@ -1187,6 +1207,9 @@ function common_cross_c_flags() {
11871207
local arch=${host##*-}
11881208

11891209
case $host in
1210+
macosx-*)
1211+
echo -n " -arch ${arch} "
1212+
;;
11901213
iphonesimulator-*)
11911214
echo -n " -arch ${arch} -mios-simulator-version-min=${DARWIN_DEPLOYMENT_VERSION_IOS}"
11921215
;;

utils/swift_build_support/swift_build_support/targets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ def name(self):
114114

115115

116116
class StdlibDeploymentTarget(object):
117-
OSX = DarwinPlatform("macosx", archs=["x86_64"],
117+
OSX = DarwinPlatform("macosx", archs=["x86_64", "arm64", "arm64e"],
118118
sdk_name="OSX")
119119

120120
iOS = DarwinPlatform("iphoneos", archs=["armv7", "armv7s", "arm64", "arm64e"],

0 commit comments

Comments
 (0)