@@ -19,6 +19,48 @@ function(add_dependencies_multiple_targets)
1919 endif ()
2020endfunction ()
2121
22+ # Compute the deployment version
23+ function (deployment_version result_var_name)
24+ set (arguments
25+ SDK
26+ DEPLOYMENT_VERSION_OSX
27+ DEPLOYMENT_VERSION_IOS
28+ DEPLOYMENT_VERSION_TVOS
29+ DEPLOYMENT_VERSION_WATCHOS
30+ DEPLOYMENT_VERSION_XROS
31+ )
32+ cmake_parse_arguments (GETDEP
33+ ""
34+ "${arguments} "
35+ ""
36+ ${ARGN} )
37+
38+ if ("${GETDEP_SDK} " IN_LIST SWIFT_DARWIN_PLATFORMS)
39+ # Check if there's a specific OS deployment version needed for this invocation
40+ if ("${GETDEP_SDK} " STREQUAL "OSX" )
41+ set (DEPLOYMENT_VERSION ${GETDEP_DEPLOYMENT_VERSION_OSX} )
42+ elseif ("${GETDEP_SDK} " STREQUAL "IOS" OR "${GETDEP_SDK} " STREQUAL "IOS_SIMULATOR" )
43+ set (DEPLOYMENT_VERSION ${GETDEP_DEPLOYMENT_VERSION_IOS} )
44+ elseif ("${GETDEP_SDK} " STREQUAL "TVOS" OR "${GETDEP_SDK} " STREQUAL "TVOS_SIMULATOR" )
45+ set (DEPLOYMENT_VERSION ${GETDEP_DEPLOYMENT_VERSION_TVOS} )
46+ elseif ("${GETDEP_SDK} " STREQUAL "WATCHOS" OR "${GETDEP_SDK} " STREQUAL "WATCHOS_SIMULATOR" )
47+ set (DEPLOYMENT_VERSION ${GETDEP_DEPLOYMENT_VERSION_WATCHOS} )
48+ elseif ("${GETDEP_SDK} " STREQUAL "XROS" OR "${GETDEP_SDK} " STREQUAL "XROS_SIMULATOR" )
49+ set (DEPLOYMENT_VERSION ${GETDEP_DEPLOYMENT_VERSION_XROS} )
50+ endif ()
51+
52+ if ("${DEPLOYMENT_VERSION} " STREQUAL "" )
53+ set (DEPLOYMENT_VERSION "${SWIFT_SDK_${GETDEP_SDK} _DEPLOYMENT_VERSION}" )
54+ endif ()
55+ endif ()
56+
57+ if ("${GETDEP_SDK} " STREQUAL "ANDROID" )
58+ set (DEPLOYMENT_VERSION ${SWIFT_ANDROID_API_LEVEL} )
59+ endif ()
60+
61+ set ("${result_var_name} " "${DEPLOYMENT_VERSION} " PARENT_SCOPE)
62+ endfunction ()
63+
2264# Usage:
2365# _add_target_variant_c_compile_link_flags(
2466# SDK sdk
@@ -52,32 +94,19 @@ function(_add_target_variant_c_compile_link_flags)
5294
5395 set (result ${${CFLAGS_RESULT_VAR_NAME} })
5496
55- if ("${CFLAGS_SDK} " IN_LIST SWIFT_DARWIN_PLATFORMS)
56- # Check if there's a specific OS deployment version needed for this invocation
57- if ("${CFLAGS_SDK} " STREQUAL "OSX" )
58- if (DEFINED maccatalyst_build_flavor AND DEFINED CFLAGS_DEPLOYMENT_VERSION_MACCATALYST)
59- set (DEPLOYMENT_VERSION ${CFLAGS_DEPLOYMENT_VERSION_MACCATALYST} )
60- else ()
61- set (DEPLOYMENT_VERSION ${CFLAGS_DEPLOYMENT_VERSION_OSX} )
62- endif ()
63- elseif ("${CFLAGS_SDK} " STREQUAL "IOS" OR "${CFLAGS_SDK} " STREQUAL "IOS_SIMULATOR" )
64- set (DEPLOYMENT_VERSION ${CFLAGS_DEPLOYMENT_VERSION_IOS} )
65- elseif ("${CFLAGS_SDK} " STREQUAL "TVOS" OR "${CFLAGS_SDK} " STREQUAL "TVOS_SIMULATOR" )
66- set (DEPLOYMENT_VERSION ${CFLAGS_DEPLOYMENT_VERSION_TVOS} )
67- elseif ("${CFLAGS_SDK} " STREQUAL "WATCHOS" OR "${CFLAGS_SDK} " STREQUAL "WATCHOS_SIMULATOR" )
68- set (DEPLOYMENT_VERSION ${CFLAGS_DEPLOYMENT_VERSION_WATCHOS} )
69- elseif ("${CFLAGS_SDK} " STREQUAL "XROS" OR "${CFLAGS_SDK} " STREQUAL "XROS_SIMULATOR" )
70- set (DEPLOYMENT_VERSION ${CFLAGS_DEPLOYMENT_VERSION_XROS} )
71- endif ()
72-
73- if ("${DEPLOYMENT_VERSION} " STREQUAL "" )
74- set (DEPLOYMENT_VERSION "${SWIFT_SDK_${CFLAGS_SDK} _DEPLOYMENT_VERSION}" )
75- endif ()
97+ if (DEFINED maccatalyst_build_flavor AND DEFINED CFLAGS_DEPLOYMENT_VERSION_MACCATALYST)
98+ set (DEPLOYMENT_VERSION_OSX "${CFLAGS_DEPLOYMENT_VERSION_MACCATALYST} " )
99+ else ()
100+ set (DEPLOYMENT_VERSION_OSX "${CFLAGS_DEPLOYMENT_VERSION_OSX} " )
76101 endif ()
77102
78- if ("${CFLAGS_SDK} " STREQUAL "ANDROID" )
79- set (DEPLOYMENT_VERSION ${SWIFT_ANDROID_API_LEVEL} )
80- endif ()
103+ deployment_version(DEPLOYMENT_VERSION
104+ SDK ${CFLAGS_SDK}
105+ DEPLOYMENT_VERSION_OSX "${DEPLOYMENT_VERSION_OSX} "
106+ DEPLOYMENT_VERSION_IOS "${CFLAGS_DEPLOYMENT_VERSION_IOS} "
107+ DEPLOYMENT_VERSION_TVOS "${CFLAGS_DEPLOYMENT_VERSION_TVOS} "
108+ DEPLOYMENT_VERSION_WATCHOS "${CFLAGS_DEPLOYMENT_VERSION_WATCHOS} "
109+ DEPLOYMENT_VERSION_XROS "${CFLAGS_DEPLOYMENT_VERSION_XROS} " )
81110
82111 # MSVC, clang-cl, gcc don't understand -target.
83112 if (CMAKE_C_COMPILER_ID MATCHES "^Clang|AppleClang$" AND
@@ -1001,6 +1030,14 @@ function(add_swift_target_library_single target name)
10011030 endif ()
10021031
10031032 # Define availability macros.
1033+ deployment_version(DEPLOYMENT_VERSION
1034+ SDK "${SWIFTLIB_SINGLE_SDK} "
1035+ DEPLOYMENT_VERSION_OSX "${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_OSX} "
1036+ DEPLOYMENT_VERSION_IOS "${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_IOS} "
1037+ DEPLOYMENT_VERSION_TVOS "${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_TVOS} "
1038+ DEPLOYMENT_VERSION_WATCHOS "${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_WATCHOS} "
1039+ DEPLOYMENT_VERSION_XROS "${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_XROS} " )
1040+
10041041 foreach (def ${SWIFT_STDLIB_AVAILABILITY_DEFINITIONS} )
10051042 list (APPEND SWIFTLIB_SINGLE_SWIFT_COMPILE_FLAGS "-Xfrontend" "-define-availability" "-Xfrontend" "${def} " )
10061043
@@ -1024,14 +1061,14 @@ function(add_swift_target_library_single target name)
10241061 string (REGEX MATCH "[0-9]+(\. [0-9]+)+" ios_version "${ios_platform_version} " )
10251062 string (REGEX MATCH "macOS ([0-9]+(\. [0-9]+)+)" macos_platform_version "${def} " )
10261063 string (REGEX MATCH "[0-9]+(\. [0-9]+)+" macos_version "${macos_platform_version} " )
1027- if ((NOT macos_version STREQUAL "9999" OR NOT ios_version STREQUAL "9999" ) AND (macos_version VERSION_GREATER "${SWIFT_SDK_OSX_DEPLOYMENT_VERSION } " OR ios_version VERSION_GREATER "${SWIFT_DARWIN_DEPLOYMENT_VERSION_MACCATALYST} " ))
1028- string (REGEX REPLACE ":.*" ": macOS ${SWIFT_SDK_OSX_DEPLOYMENT_VERSION } , iOS ${SWIFT_DARWIN_DEPLOYMENT_VERSION_MACCATALYST} " current "${current} " )
1064+ if ((NOT macos_version STREQUAL "9999" OR NOT ios_version STREQUAL "9999" ) AND (macos_version VERSION_GREATER "${DEPLOYMENT_VERSION } " OR ios_version VERSION_GREATER "${SWIFT_DARWIN_DEPLOYMENT_VERSION_MACCATALYST} " ))
1065+ string (REGEX REPLACE ":.*" ": macOS ${DEPLOYMENT_VERSION } , iOS ${SWIFT_DARWIN_DEPLOYMENT_VERSION_MACCATALYST} " current "${current} " )
10291066 endif ()
10301067 else ()
10311068 string (REGEX MATCH "${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK} _AVAILABILITY_NAME} ([0-9]+(\. [0-9]+)+)" platform_version "${def} " )
10321069 string (REGEX MATCH "[0-9]+(\. [0-9]+)+" version "${platform_version} " )
1033- if (NOT version STREQUAL "9999" AND version VERSION_GREATER "${SWIFT_SDK_ ${SWIFTLIB_SINGLE_SDK} _DEPLOYMENT_VERSION }" )
1034- string (REGEX REPLACE ":.*" ":${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK} _AVAILABILITY_NAME} ${SWIFT_SDK_ ${SWIFTLIB_SINGLE_SDK} _DEPLOYMENT_VERSION }" current "${current} " )
1070+ if (NOT version STREQUAL "9999" AND version VERSION_GREATER "${DEPLOYMENT_VERSION } " )
1071+ string (REGEX REPLACE ":.*" ":${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK} _AVAILABILITY_NAME} ${DEPLOYMENT_VERSION } " current "${current} " )
10351072 endif ()
10361073 endif ()
10371074 endif ()
0 commit comments