Skip to content

Commit 07c4a44

Browse files
authored
Merge pull request #69512 from apple/egorzhdan/cxx-lower-deployment-target
[cxx-interop] Lower macOS deployment target version for the Cxx module
2 parents 4363459 + 00cdb66 commit 07c4a44

File tree

4 files changed

+14
-3
lines changed

4 files changed

+14
-3
lines changed

stdlib/cmake/modules/AddSwiftStdlib.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -989,6 +989,7 @@ function(add_swift_target_library_single target name)
989989
${SWIFTLIB_SINGLE_NO_LINK_NAME_keyword}
990990
ENABLE_LTO "${SWIFTLIB_SINGLE_ENABLE_LTO}"
991991
INSTALL_IN_COMPONENT "${install_in_component}"
992+
DEPLOYMENT_VERSION_OSX ${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_OSX}
992993
MACCATALYST_BUILD_FLAVOR "${SWIFTLIB_SINGLE_MACCATALYST_BUILD_FLAVOR}"
993994
${BOOTSTRAPPING_arg})
994995
add_swift_source_group("${SWIFTLIB_SINGLE_EXTERNAL_SOURCES}")

stdlib/cmake/modules/SwiftSource.cmake

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function(handle_swift_sources
5050
sourcesvar externalvar name)
5151
cmake_parse_arguments(SWIFTSOURCES
5252
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;NO_LINK_NAME;IS_FRAGILE;ONLY_SWIFTMODULE"
53-
"SDK;ARCHITECTURE;INSTALL_IN_COMPONENT;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING"
53+
"SDK;ARCHITECTURE;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING"
5454
"DEPENDS;COMPILE_FLAGS;MODULE_NAME;MODULE_DIR;ENABLE_LTO"
5555
${ARGN})
5656
translate_flag(${SWIFTSOURCES_IS_MAIN} "IS_MAIN" IS_MAIN_arg)
@@ -158,6 +158,7 @@ function(handle_swift_sources
158158
${IS_FRAGILE_arg}
159159
${ONLY_SWIFTMODULE_arg}
160160
INSTALL_IN_COMPONENT "${SWIFTSOURCES_INSTALL_IN_COMPONENT}"
161+
DEPLOYMENT_VERSION_OSX ${SWIFTSOURCES_DEPLOYMENT_VERSION_OSX}
161162
MACCATALYST_BUILD_FLAVOR "${SWIFTSOURCES_MACCATALYST_BUILD_FLAVOR}")
162163
set("${dependency_target_out_var_name}" "${dependency_target}" PARENT_SCOPE)
163164
set("${dependency_module_target_out_var_name}" "${module_dependency_target}" PARENT_SCOPE)
@@ -225,7 +226,7 @@ function(_add_target_variant_swift_compile_flags
225226
cmake_parse_arguments(
226227
VARIANT # prefix
227228
"" # options
228-
"MACCATALYST_BUILD_FLAVOR" # single-value args
229+
"MACCATALYST_BUILD_FLAVOR;DEPLOYMENT_VERSION_OSX" # single-value args
229230
"" # multi-value args
230231
${ARGN})
231232

@@ -236,6 +237,10 @@ function(_add_target_variant_swift_compile_flags
236237

237238
if("${sdk}" IN_LIST SWIFT_DARWIN_PLATFORMS)
238239
set(sdk_deployment_version "${SWIFT_SDK_${sdk}_DEPLOYMENT_VERSION}")
240+
if("${sdk}" STREQUAL "OSX" AND DEFINED VARIANT_DEPLOYMENT_VERSION_OSX)
241+
set(sdk_deployment_version ${VARIANT_DEPLOYMENT_VERSION_OSX})
242+
endif()
243+
239244
get_target_triple(target target_variant "${sdk}" "${arch}"
240245
MACCATALYST_BUILD_FLAVOR "${VARIANT_MACCATALYST_BUILD_FLAVOR}"
241246
DEPLOYMENT_VERSION "${sdk_deployment_version}")
@@ -382,7 +387,7 @@ function(_compile_swift_files
382387
dependency_sibgen_target_out_var_name)
383388
cmake_parse_arguments(SWIFTFILE
384389
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;IS_FRAGILE;ONLY_SWIFTMODULE"
385-
"OUTPUT;MODULE_NAME;INSTALL_IN_COMPONENT;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING"
390+
"OUTPUT;MODULE_NAME;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING"
386391
"SOURCES;FLAGS;DEPENDS;SDK;ARCHITECTURE;OPT_FLAGS;MODULE_DIR"
387392
${ARGN})
388393

@@ -455,6 +460,7 @@ function(_compile_swift_files
455460
"${SWIFT_STDLIB_BUILD_TYPE}"
456461
"${SWIFT_STDLIB_ASSERTIONS}"
457462
swift_flags
463+
DEPLOYMENT_VERSION_OSX ${SWIFTFILE_DEPLOYMENT_VERSION_OSX}
458464
MACCATALYST_BUILD_FLAVOR "${maccatalyst_build_flavor}"
459465
)
460466

stdlib/public/Cxx/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ add_swift_target_library(swiftCxx STATIC NO_LINK_NAME IS_STDLIB IS_SWIFT_ONLY IS
2424
# For functionality that depends on the C++ stdlib, use C++ stdlib overlay (`swiftstd` module).
2525
-Xcc -nostdinc++
2626

27+
DEPLOYMENT_VERSION_OSX ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_OSX}
28+
2729
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
2830
DEPENDS ${SWIFT_CXX_DEPS}
2931
INSTALL_IN_COMPONENT compiler

stdlib/public/Cxx/std/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ add_swift_target_library(swiftCxxStdlib STATIC NO_LINK_NAME IS_STDLIB IS_SWIFT_O
5151
SWIFT_COMPILE_FLAGS_LINUX
5252
${SWIFT_SDK_LINUX_CXX_OVERLAY_SWIFT_COMPILE_FLAGS}
5353

54+
DEPLOYMENT_VERSION_OSX ${COMPATIBILITY_MINIMUM_DEPLOYMENT_VERSION_OSX}
55+
5456
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
5557
TARGET_SDKS ALL_APPLE_PLATFORMS LINUX WINDOWS
5658
INSTALL_IN_COMPONENT compiler

0 commit comments

Comments
 (0)