From 87bcd87b101a2ea13d3d4246f8cfc544a36b9d23 Mon Sep 17 00:00:00 2001 From: Guillaume Lessard Date: Wed, 10 Dec 2025 15:40:08 -0800 Subject: [PATCH 1/3] [cmake] fix for maccatalyst builds In some build configurations, libswiftCompatibilitySpan was being linked for a newer deployment target than expected. --- stdlib/toolchain/CompatibilitySpan/CMakeLists.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/stdlib/toolchain/CompatibilitySpan/CMakeLists.txt b/stdlib/toolchain/CompatibilitySpan/CMakeLists.txt index 06b90b2949b34..0feb15e04ac6c 100644 --- a/stdlib/toolchain/CompatibilitySpan/CMakeLists.txt +++ b/stdlib/toolchain/CompatibilitySpan/CMakeLists.txt @@ -2,6 +2,13 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND DEFINED SWIFT_STDLIB_LIBRARY_BUILD_TY set(library_name "swiftCompatibilitySpan") + # The correct fix would be to add this to the following to the invocation of add_swift_target_library + # DEPLOYMENT_VERSION_MACCATALYST ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_MACCATALYST} + # but the underlying logic takes the deployment version from the cache instead + # so for now we override those values locally + set(SWIFT_DARWIN_DEPLOYMENT_VERSION_OSX ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_OSX}) + set(SWIFT_DARWIN_DEPLOYMENT_VERSION_MACCATALYST ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_MACCATALYST}) + add_swift_target_library("${library_name}" ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_STDLIB FakeStdlib.swift ../../public/core/Span/MutableRawSpan.swift @@ -13,8 +20,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND DEFINED SWIFT_STDLIB_LIBRARY_BUILD_TY TARGET_SDKS ${SWIFT_APPLE_PLATFORMS} - LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" - SWIFT_COMPILE_FLAGS ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS} -parse-stdlib From 19b0b87a37bc22753181e0e36198d60278773565 Mon Sep 17 00:00:00 2001 From: Guillaume Lessard Date: Thu, 11 Dec 2025 10:29:29 -0800 Subject: [PATCH 2/3] Update stdlib/toolchain/CompatibilitySpan/CMakeLists.txt Co-authored-by: Eric Miotto <1094986+edymtt@users.noreply.github.com> --- stdlib/toolchain/CompatibilitySpan/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stdlib/toolchain/CompatibilitySpan/CMakeLists.txt b/stdlib/toolchain/CompatibilitySpan/CMakeLists.txt index 0feb15e04ac6c..6a9476319df82 100644 --- a/stdlib/toolchain/CompatibilitySpan/CMakeLists.txt +++ b/stdlib/toolchain/CompatibilitySpan/CMakeLists.txt @@ -6,8 +6,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND DEFINED SWIFT_STDLIB_LIBRARY_BUILD_TY # DEPLOYMENT_VERSION_MACCATALYST ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_MACCATALYST} # but the underlying logic takes the deployment version from the cache instead # so for now we override those values locally - set(SWIFT_DARWIN_DEPLOYMENT_VERSION_OSX ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_OSX}) - set(SWIFT_DARWIN_DEPLOYMENT_VERSION_MACCATALYST ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_MACCATALYST}) + set(SWIFT_DARWIN_DEPLOYMENT_VERSION_OSX "10.14.4") + set(SWIFT_DARWIN_DEPLOYMENT_VERSION_MACCATALYST "13.1") add_swift_target_library("${library_name}" ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_STDLIB FakeStdlib.swift From 4fa4ec86f25e40fb46db7f703cd209df06e6ae67 Mon Sep 17 00:00:00 2001 From: Guillaume Lessard Date: Thu, 11 Dec 2025 11:40:34 -0800 Subject: [PATCH 3/3] Apply suggestion from @edymtt --- stdlib/toolchain/CompatibilitySpan/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/stdlib/toolchain/CompatibilitySpan/CMakeLists.txt b/stdlib/toolchain/CompatibilitySpan/CMakeLists.txt index 6a9476319df82..98a9a5940cee5 100644 --- a/stdlib/toolchain/CompatibilitySpan/CMakeLists.txt +++ b/stdlib/toolchain/CompatibilitySpan/CMakeLists.txt @@ -33,7 +33,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND DEFINED SWIFT_STDLIB_LIBRARY_BUILD_TY DEPLOYMENT_VERSION_TVOS "12.2" DEPLOYMENT_VERSION_WATCHOS "5.2" DEPLOYMENT_VERSION_XROS "1.0" - DEPLOYMENT_VERSION_MACCATALYST "13.1" MACCATALYST_BUILD_FLAVOR "zippered"