Skip to content

Commit e88e947

Browse files
authored
Merge pull request #62712 from etcwilde/ewilde/zipping-zippers-zip
Add zippering support
2 parents b5ab1c8 + f8a5418 commit e88e947

File tree

22 files changed

+77
-20
lines changed

22 files changed

+77
-20
lines changed

CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,7 @@ set(COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_OSX "10.9")
460460
set(COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_IOS "7.0")
461461
set(COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_TVOS "9.0")
462462
set(COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_WATCHOS "2.0")
463+
set(COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_MACCATALYST "13.1")
463464

464465
#
465466
# User-configurable debugging options.
@@ -585,6 +586,13 @@ option(SWIFT_THREADING_PACKAGE
585586
Valid package names are 'pthreads', 'darwin', 'linux', 'win32', 'c11', 'none'
586587
or the empty string for the SDK default.")
587588

589+
option(SWIFT_ENABLE_MACCATALYST
590+
"Build the Standard Library and overlays with MacCatalyst support"
591+
FALSE)
592+
593+
set(SWIFT_DARWIN_DEPLOYMENT_VERSION_MACCATALYST "14.5" CACHE STRING
594+
"Minimum deployment target version for macCatalyst")
595+
588596
#
589597
# End of user-configurable options.
590598
#

stdlib/cmake/modules/AddSwiftStdlib.cmake

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,29 @@ function(_add_target_variant_c_compile_link_flags)
8282
DEPLOYMENT_VERSION "${DEPLOYMENT_VERSION}")
8383
list(APPEND result "-target" "${target}")
8484
if(target_variant)
85-
list(APPEND result "-target-variant" "${target_variant}")
85+
# Check if the C compiler supports `-target-variant` flag
86+
# TODO (etcwilde): This is a massive hack to deal with the fact that we
87+
# are lying to cmake about what compiler is being used. Normally we could
88+
# use `check_compiler_flag(C ...)` here. Unfortunately, that uses a
89+
# different compiler since we swap out the C/CXX compiler part way through
90+
# the build.
91+
file(WRITE "${CMAKE_BINARY_DIR}/stdlib/empty" "")
92+
execute_process(
93+
COMMAND
94+
"${CMAKE_C_COMPILER}"
95+
-Wno-unused-command-line-argument
96+
-target-variant x86_64-apple-ios14.5-macabi -x c -c - -o /dev/null
97+
INPUT_FILE
98+
"${CMAKE_BINARY_DIR}/stdlib/empty"
99+
OUTPUT_QUIET ERROR_QUIET
100+
RESULT_VARIABLE
101+
SUPPORTS_TARGET_VARIANT)
102+
103+
if(NOT SUPPORTS_TARGET_VARIANT)
104+
list(APPEND result "-target-variant" "${target_variant}")
105+
else()
106+
list(APPEND result "-darwin-target-variant" "${target_variant}")
107+
endif()
86108
endif()
87109
endif()
88110

stdlib/private/DifferentiationUnittest/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ add_swift_target_library(swiftDifferentiationUnittest ${SWIFT_STDLIB_LIBRARY_BUI
44

55
SWIFT_MODULE_DEPENDS _Differentiation StdlibUnittest
66
INSTALL_IN_COMPONENT stdlib-experimental
7-
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}")
7+
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}"
8+
MACCATALYST_BUILD_FLAVOR "zippered")

stdlib/private/OSLog/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ add_swift_target_library(swiftOSLogTestHelper
2626
SWIFT_MODULE_DEPENDS_OSX Darwin ${swift_oslog_darwin_dependencies}
2727
SWIFT_MODULE_DEPENDS_TVOS Darwin ${swift_oslog_darwin_dependencies}
2828
SWIFT_MODULE_DEPENDS_WATCHOS Darwin ${swift_oslog_darwin_dependencies}
29+
SWIFT_MODULE_DEPENDS_MACCATALYST Darwin ${swift_oslog_darwin_dependencies}
2930
TARGET_SDKS ALL_APPLE_PLATFORMS
3031
SWIFT_COMPILE_FLAGS ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
3132
INSTALL_IN_COMPONENT never_install
32-
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}")
33+
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}"
34+
MACCATALYST_BUILD_FLAVOR "zippered")

stdlib/private/RuntimeUnittest/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ add_swift_target_library(swiftRuntimeUnittest ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES
1717
C_COMPILE_FLAGS -I${SWIFT_SOURCE_DIR}/stdlib/include
1818
SWIFT_COMPILE_FLAGS ${swift_stdlib_unittest_compile_flags} ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
1919
INSTALL_IN_COMPONENT stdlib-experimental
20-
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}")
21-
20+
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}"
21+
MACCATALYST_BUILD_FLAVOR "zippered")

stdlib/private/StdlibCollectionUnittest/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ add_swift_target_library(swiftStdlibCollectionUnittest ${SWIFT_STDLIB_LIBRARY_BU
2727
SWIFT_MODULE_DEPENDS_WINDOWS CRT
2828
SWIFT_COMPILE_FLAGS ${swift_stdlib_unittest_compile_flags} ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
2929
INSTALL_IN_COMPONENT stdlib-experimental
30-
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}")
31-
30+
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}"
31+
MACCATALYST_BUILD_FLAVOR "zippered")

stdlib/private/StdlibUnicodeUnittest/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ add_swift_target_library(swiftStdlibUnicodeUnittest ${SWIFT_STDLIB_LIBRARY_BUILD
1818
SWIFT_MODULE_DEPENDS_WINDOWS CRT
1919
SWIFT_COMPILE_FLAGS ${swift_stdlib_unittest_compile_flags} ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
2020
INSTALL_IN_COMPONENT stdlib-experimental
21-
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}")
22-
21+
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}"
22+
MACCATALYST_BUILD_FLAVOR "zippered")

stdlib/private/StdlibUnittest/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ add_swift_target_library(swiftStdlibUnittest ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES}
5454
SWIFT_MODULE_DEPENDS_OSX Darwin
5555
SWIFT_MODULE_DEPENDS_TVOS Darwin
5656
SWIFT_MODULE_DEPENDS_WATCHOS Darwin
57+
SWIFT_MODULE_DEPENDS_MACCATALYST Darwin
5758
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
5859
SWIFT_MODULE_DEPENDS_LINUX Glibc
5960
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
@@ -65,6 +66,7 @@ add_swift_target_library(swiftStdlibUnittest ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES}
6566
SWIFT_COMPILE_FLAGS ${swift_stdlib_unittest_compile_flags} ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
6667
INSTALL_IN_COMPONENT stdlib-experimental
6768
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}"
68-
LINK_LIBRARIES ${swift_stdlib_unittest_link_libraries})
69+
LINK_LIBRARIES ${swift_stdlib_unittest_link_libraries}
70+
MACCATALYST_BUILD_FLAVOR "zippered")
6971
set_source_files_properties(InspectValue.cpp PROPERTIES COMPILE_FLAGS -std=c++14)
7072

stdlib/private/SwiftPrivate/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ add_swift_target_library(swiftSwiftPrivate ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} I
1919
SWIFT_MODULE_DEPENDS_IOS Darwin
2020
SWIFT_MODULE_DEPENDS_TVOS Darwin
2121
SWIFT_MODULE_DEPENDS_WATCHOS Darwin
22+
SWIFT_MODULE_DEPENDS_MACCATALYST Darwin
2223
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
2324
SWIFT_MODULE_DEPENDS_LINUX Glibc
2425
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
@@ -28,5 +29,6 @@ add_swift_target_library(swiftSwiftPrivate ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} I
2829
SWIFT_MODULE_DEPENDS_WINDOWS CRT WinSDK
2930
SWIFT_COMPILE_FLAGS ${swift_swiftprivate_compile_flags} ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
3031
INSTALL_IN_COMPONENT stdlib-experimental
31-
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}")
32-
32+
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}"
33+
MACCATALYST_BUILD_FLAVOR "zippered"
34+
)

stdlib/private/SwiftPrivateLibcExtras/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ add_swift_target_library(swiftSwiftPrivateLibcExtras ${SWIFT_STDLIB_LIBRARY_BUIL
2929
SWIFT_MODULE_DEPENDS_IOS Darwin
3030
SWIFT_MODULE_DEPENDS_TVOS Darwin
3131
SWIFT_MODULE_DEPENDS_WATCHOS Darwin
32+
SWIFT_MODULE_DEPENDS_MACCATALYST Darwin
3233
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
3334
SWIFT_MODULE_DEPENDS_LINUX Glibc
3435
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
@@ -38,4 +39,5 @@ add_swift_target_library(swiftSwiftPrivateLibcExtras ${SWIFT_STDLIB_LIBRARY_BUIL
3839
SWIFT_MODULE_DEPENDS_WINDOWS CRT WinSDK
3940
INCORPORATE_OBJECT_LIBRARIES ${swift_private_libc_extras_incorporate_object_libraries}
4041
INSTALL_IN_COMPONENT stdlib-experimental
41-
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}")
42+
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}"
43+
MACCATALYST_BUILD_FLAVOR "zippered")

stdlib/private/SwiftPrivateThreadExtras/CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ add_swift_target_library(swiftSwiftPrivateThreadExtras ${SWIFT_STDLIB_LIBRARY_BU
1010
SWIFT_MODULE_DEPENDS_OSX Darwin
1111
SWIFT_MODULE_DEPENDS_TVOS Darwin
1212
SWIFT_MODULE_DEPENDS_WATCHOS Darwin
13+
SWIFT_MODULE_DEPENDS_MACCATALYST Darwin
1314
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
1415
SWIFT_MODULE_DEPENDS_LINUX Glibc
1516
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
@@ -19,5 +20,5 @@ add_swift_target_library(swiftSwiftPrivateThreadExtras ${SWIFT_STDLIB_LIBRARY_BU
1920
SWIFT_MODULE_DEPENDS_WINDOWS CRT WinSDK
2021
SWIFT_COMPILE_FLAGS ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
2122
INSTALL_IN_COMPONENT stdlib-experimental
22-
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}")
23-
23+
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}"
24+
MACCATALYST_BUILD_FLAVOR "zippered")

stdlib/public/Concurrency/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,4 +150,5 @@ add_swift_target_library(swift_Concurrency ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} I
150150
${SWIFT_RUNTIME_CONCURRENCY_SWIFT_FLAGS}
151151
${swift_concurrency_options}
152152
INSTALL_IN_COMPONENT ${swift_concurrency_install_component}
153+
MACCATALYST_BUILD_FLAVOR zippered
153154
)

stdlib/public/Differentiation/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,6 @@ add_swift_target_library(swift_Differentiation ${SWIFT_STDLIB_LIBRARY_BUILD_TYPE
4848
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
4949
-parse-stdlib
5050
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
51-
INSTALL_IN_COMPONENT stdlib)
51+
INSTALL_IN_COMPONENT stdlib
52+
SWIFT_MODULE_DEPENDS_MACCATALYST Darwin
53+
MACCATALYST_BUILD_FLAVOR "zippered")

stdlib/public/Platform/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ endif()
7474
add_swift_target_library(swiftDarwin ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES}
7575
${swiftDarwin_common_options}
7676
TARGET_SDKS "${swiftDarwin_target_sdks}"
77-
INSTALL_IN_COMPONENT sdk-overlay)
77+
INSTALL_IN_COMPONENT sdk-overlay
78+
MACCATALYST_BUILD_FLAVOR "zippered")
7879

7980
set(swiftGlibc_target_sdks ANDROID CYGWIN FREEBSD OPENBSD LINUX HAIKU)
8081
if(SWIFT_FREESTANDING_FLAVOR STREQUAL "linux")

stdlib/public/RegexParser/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,5 @@ add_swift_target_library(swift_RegexParser ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} I
4949
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
5050

5151
INSTALL_IN_COMPONENT stdlib
52+
MACCATALYST_BUILD_FLAVOR "zippered"
5253
)

stdlib/public/StringProcessing/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,5 @@ add_swift_target_library(swift_StringProcessing ${SWIFT_STDLIB_LIBRARY_BUILD_TYP
5353

5454
SWIFT_MODULE_DEPENDS _RegexParser
5555
INSTALL_IN_COMPONENT stdlib
56+
MACCATALYST_BUILD_FLAVOR "zippered"
5657
)

stdlib/public/core/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -376,5 +376,7 @@ add_swift_target_library(swiftCore
376376
FILE_DEPENDS
377377
${swiftCore_common_dependencies}
378378
INSTALL_IN_COMPONENT
379-
stdlib)
380-
379+
stdlib
380+
MACCATALYST_BUILD_FLAVOR
381+
zippered
382+
)

stdlib/toolchain/Compatibility51/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ add_swift_target_library("${library_name}" STATIC
1919
DEPLOYMENT_VERSION_TVOS ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_TVOS}
2020
DEPLOYMENT_VERSION_WATCHOS ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_WATCHOS}
2121

22+
MACCATALYST_BUILD_FLAVOR "zippered"
23+
2224
INSTALL_IN_COMPONENT compiler
2325
INSTALL_WITH_SHARED)
2426

stdlib/toolchain/Compatibility56/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ add_swift_target_library("${library_name}" STATIC
2727
DEPLOYMENT_VERSION_TVOS ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_TVOS}
2828
DEPLOYMENT_VERSION_WATCHOS ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_WATCHOS}
2929

30+
MACCATALYST_BUILD_FLAVOR "zippered"
31+
3032
INSTALL_IN_COMPONENT compiler
3133
INSTALL_WITH_SHARED)
3234

stdlib/toolchain/CompatibilityConcurrency/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ add_swift_target_library("${library_name}" STATIC
1414
DEPLOYMENT_VERSION_TVOS ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_TVOS}
1515
DEPLOYMENT_VERSION_WATCHOS ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_WATCHOS}
1616

17+
MACCATALYST_BUILD_FLAVOR "zippered"
18+
1719
INSTALL_IN_COMPONENT compiler
1820
INSTALL_WITH_SHARED)
1921

stdlib/toolchain/CompatibilityThreading/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,6 @@ add_swift_target_library(swiftCompatibilityThreading OBJECT_LIBRARY
1111
DEPLOYMENT_VERSION_OSX ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_OSX}
1212
DEPLOYMENT_VERSION_IOS ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_IOS}
1313
DEPLOYMENT_VERSION_TVOS ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_TVOS}
14-
DEPLOYMENT_VERSION_WATCHOS ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_WATCHOS})
14+
DEPLOYMENT_VERSION_WATCHOS ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_WATCHOS}
15+
16+
MACCATALYST_BUILD_FLAVOR "zippered")

utils/build-presets.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1234,6 +1234,7 @@ mixin-preset=mixin_buildbot_install_components_with_clang
12341234
ios
12351235
tvos
12361236
watchos
1237+
maccatalyst
12371238

12381239
lldb
12391240
llbuild

0 commit comments

Comments
 (0)