@@ -19,6 +19,52 @@ function(add_dependencies_multiple_targets)
19
19
endif ()
20
20
endfunction ()
21
21
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
+ if ("${GETDEP_SDK} " STREQUAL "FREESTANDING" )
62
+ set (DEPLOYMENT_VERSION "${SWIFT_SDK_${GETDEP_SDK} _DEPLOYMENT_VERSION}" )
63
+ endif ()
64
+
65
+ set ("${result_var_name} " "${DEPLOYMENT_VERSION} " PARENT_SCOPE )
66
+ endfunction ()
67
+
22
68
# Usage:
23
69
# _add_target_variant_c_compile_link_flags(
24
70
# SDK sdk
@@ -52,32 +98,19 @@ function(_add_target_variant_c_compile_link_flags)
52
98
53
99
set (result ${${CFLAGS_RESULT_VAR_NAME}} )
54
100
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 ()
101
+ if (DEFINED maccatalyst_build_flavor AND DEFINED CFLAGS_DEPLOYMENT_VERSION_MACCATALYST )
102
+ set (DEPLOYMENT_VERSION_OSX "${CFLAGS_DEPLOYMENT_VERSION_MACCATALYST} " )
103
+ else ()
104
+ set (DEPLOYMENT_VERSION_OSX "${CFLAGS_DEPLOYMENT_VERSION_OSX} " )
76
105
endif ()
77
106
78
- if ("${CFLAGS_SDK} " STREQUAL "ANDROID" )
79
- set (DEPLOYMENT_VERSION ${SWIFT_ANDROID_API_LEVEL} )
80
- endif ()
107
+ deployment_version (DEPLOYMENT_VERSION
108
+ SDK ${CFLAGS_SDK}
109
+ DEPLOYMENT_VERSION_OSX "${DEPLOYMENT_VERSION_OSX} "
110
+ DEPLOYMENT_VERSION_IOS "${CFLAGS_DEPLOYMENT_VERSION_IOS} "
111
+ DEPLOYMENT_VERSION_TVOS "${CFLAGS_DEPLOYMENT_VERSION_TVOS} "
112
+ DEPLOYMENT_VERSION_WATCHOS "${CFLAGS_DEPLOYMENT_VERSION_WATCHOS} "
113
+ DEPLOYMENT_VERSION_XROS "${CFLAGS_DEPLOYMENT_VERSION_XROS} " )
81
114
82
115
# MSVC, clang-cl, gcc don't understand -target.
83
116
if (CMAKE_C_COMPILER_ID MATCHES "^Clang|AppleClang$" AND
@@ -1001,6 +1034,14 @@ function(add_swift_target_library_single target name)
1001
1034
endif ()
1002
1035
1003
1036
# Define availability macros.
1037
+ deployment_version (DEPLOYMENT_VERSION
1038
+ SDK "${SWIFTLIB_SINGLE_SDK} "
1039
+ DEPLOYMENT_VERSION_OSX "${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_OSX} "
1040
+ DEPLOYMENT_VERSION_IOS "${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_IOS} "
1041
+ DEPLOYMENT_VERSION_TVOS "${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_TVOS} "
1042
+ DEPLOYMENT_VERSION_WATCHOS "${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_WATCHOS} "
1043
+ DEPLOYMENT_VERSION_XROS "${SWIFTLIB_SINGLE_DEPLOYMENT_VERSION_XROS} " )
1044
+
1004
1045
foreach (def ${SWIFT_STDLIB_AVAILABILITY_DEFINITIONS} )
1005
1046
list (APPEND SWIFTLIB_SINGLE_SWIFT_COMPILE_FLAGS "-Xfrontend" "-define-availability" "-Xfrontend" "${def} " )
1006
1047
@@ -1024,14 +1065,14 @@ function(add_swift_target_library_single target name)
1024
1065
string (REGEX MATCH "[0-9]+(\. [0-9]+)+" ios_version "${ios_platform_version} " )
1025
1066
string (REGEX MATCH "macOS ([0-9]+(\. [0-9]+)+)" macos_platform_version "${def} " )
1026
1067
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} " )
1068
+ 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} " ))
1069
+ string (REGEX REPLACE ":.*" ": macOS ${DEPLOYMENT_VERSION } , iOS ${SWIFT_DARWIN_DEPLOYMENT_VERSION_MACCATALYST} " current "${current} " )
1029
1070
endif ()
1030
1071
else ()
1031
1072
string (REGEX MATCH "${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK} _AVAILABILITY_NAME} ([0-9]+(\. [0-9]+)+)" platform_version "${def} " )
1032
1073
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} " )
1074
+ if (NOT version STREQUAL "9999" AND version VERSION_GREATER "${DEPLOYMENT_VERSION } " )
1075
+ string (REGEX REPLACE ":.*" ":${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK} _AVAILABILITY_NAME} ${DEPLOYMENT_VERSION } " current "${current} " )
1035
1076
endif ()
1036
1077
endif ()
1037
1078
endif ()
0 commit comments