@@ -69,20 +69,40 @@ FetchContent_MakeAvailable(SwiftFoundationICU SwiftCollections)
69
69
list (APPEND CMAKE_MODULE_PATH ${SwiftFoundation_SOURCE_DIR} /cmake/modules)
70
70
71
71
# Availability Macros (only applies to FoundationEssentials and FoundationInternationalization)
72
- set (_SwiftFoundation_availability_macros)
73
- list (APPEND _SwiftFoundation_availability_macros
74
- "SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend \" AvailabilityMacro=FoundationPreview 0.1:macOS 13.3, iOS 16.4, tvOS 16.4, watchOS 9.4\" >"
75
- "SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend \" AvailabilityMacro=FoundationPreview 0.2:macOS 13.3, iOS 16.4, tvOS 16.4, watchOS 9.4\" >"
76
- "SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend \" AvailabilityMacro=FoundationPreview 0.3:macOS 13.3, iOS 16.4, tvOS 16.4, watchOS 9.4\" >"
77
- "SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend \" AvailabilityMacro=FoundationPreview 0.4:macOS 13.3, iOS 16.4, tvOS 16.4, watchOS 9.4\" >"
78
- "SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend \" AvailabilityMacro=FoundationPredicate 0.1:macOS 14, iOS 17, tvOS 17, watchOS 10\" >"
79
- "SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend \" AvailabilityMacro=FoundationPredicate 0.2:macOS 14, iOS 17, tvOS 17, watchOS 10\" >"
80
- "SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend \" AvailabilityMacro=FoundationPredicate 0.3:macOS 14, iOS 17, tvOS 17, watchOS 10\" >"
81
- "SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend \" AvailabilityMacro=FoundationPredicate 0.4:macOS 14, iOS 17, tvOS 17, watchOS 10\" >"
82
- "SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend \" AvailabilityMacro=FoundationPredicateRegex 0.1:macOS 10000, iOS 10000, tvOS 10000, watchOS 10000\" >"
83
- "SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend \" AvailabilityMacro=FoundationPredicateRegex 0.2:macOS 10000, iOS 10000, tvOS 10000, watchOS 10000\" >"
84
- "SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend \" AvailabilityMacro=FoundationPredicateRegex 0.3:macOS 10000, iOS 10000, tvOS 10000, watchOS 10000\" >"
85
- "SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend \" AvailabilityMacro=FoundationPredicateRegex 0.4:macOS 10000, iOS 10000, tvOS 10000, watchOS 10000\" >" )
72
+ set (_SwiftFoundation_BaseAvailability "macOS 13.3, iOS 16.4, tvOS 16.4, watchOS 9.4" )
73
+ set (_SwiftFoundation_macOS14Availability "macOS 14, iOS 17, tvOS 17, watchOS 10" )
74
+ set (_SwiftFoundation_macOS15Availability "macOS 15, iOS 18, tvOS 18, watchOS 11" )
75
+ set (_SwiftFoundation_FutureAvailability "macOS 10000, iOS 10000, tvOS 10000, watchOS 10000" )
76
+
77
+ # All versions to define for each availability name
78
+ list (APPEND _SwiftFoundation_versions
79
+ "0.1"
80
+ "0.2"
81
+ "0.3"
82
+ "0.4" )
83
+
84
+ # Each availability name to define
85
+ list (APPEND _SwiftFoundation_availability_names
86
+ "FoundationPreview"
87
+ "FoundationPredicate"
88
+ "FoundationPredicateRegex" )
89
+
90
+ # The aligned availability for each name (in the same order)
91
+ list (APPEND _SwiftFoundation_availability_releases
92
+ ${_SwiftFoundation_BaseAvailability}
93
+ ${_SwiftFoundation_macOS14Availability}
94
+ ${_SwiftFoundation_macOS15Availability} )
95
+
96
+ foreach (version ${_SwiftFoundation_versions} )
97
+ foreach (name release IN ZIP_LISTS _SwiftFoundation_availability_names _SwiftFoundation_availability_releases)
98
+ if (NOT DEFINED name OR NOT DEFINED release)
99
+ message (FATAL_ERROR "_SwiftFoundation_availability_names and _SwiftFoundation_availability_releases are not the same length" )
100
+ endif ()
101
+
102
+ list (APPEND _SwiftFoundation_availability_macros
103
+ "SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -enable-experimental-feature -Xfrontend \" AvailabilityMacro=${name} ${version} =${release} \" >" )
104
+ endforeach ()
105
+ endforeach ()
86
106
87
107
include (GNUInstallDirs)
88
108
include (SwiftFoundationSwiftSupport)
0 commit comments