|
182 | 182 | #ifdef Q_OS_DARWIN |
183 | 183 | # include <Availability.h> |
184 | 184 | # include <AvailabilityMacros.h> |
| 185 | +# include <QtCore/qtpreprocessorsupport.h> |
185 | 186 |
|
186 | 187 | # define QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, ios, tvos, watchos) \ |
187 | 188 | ((defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && macos != __MAC_NA && __MAC_OS_X_VERSION_MAX_ALLOWED >= macos) || \ |
|
206 | 207 | # define QT_WATCHOS_PLATFORM_SDK_EQUAL_OR_ABOVE(watchos) \ |
207 | 208 | QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_NA, __IPHONE_NA, __TVOS_NA, watchos) |
208 | 209 |
|
| 210 | +# pragma clang deprecated(QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE, "Use QT_APPLE_SDK_EQUAL_OR_ABOVE instead") |
| 211 | + |
209 | 212 | # define QT_MACOS_IOS_DEPLOYMENT_TARGET_BELOW(macos, ios) \ |
210 | 213 | QT_DARWIN_DEPLOYMENT_TARGET_BELOW(macos, ios, __TVOS_NA, __WATCHOS_NA) |
211 | 214 | # define QT_MACOS_DEPLOYMENT_TARGET_BELOW(macos) \ |
|
219 | 222 |
|
220 | 223 | # pragma clang deprecated(QT_DARWIN_DEPLOYMENT_TARGET_BELOW, "Use @available instead") |
221 | 224 |
|
| 225 | +/*! |
| 226 | + \macro QT_APPLE_SDK_EQUAL_OR_ABOVE |
| 227 | + \internal |
| 228 | +
|
| 229 | + Generalized Apple platform SDK check, for code requiring |
| 230 | + a minimum version of build SDK, e.g.: |
| 231 | +
|
| 232 | + #if QT_APPLE_SDK_EQUAL_OR_ABOVE(MACOS(26, 6, 1), IOS(17, 2), VISIONOS(2)) |
| 233 | +
|
| 234 | + For runtime version checks, use @available |
| 235 | +*/ |
| 236 | + |
| 237 | +# define QT_APPLE_SDK_VERSION(...) QT_APPLE_SDK_VERSION_IMPL(__VA_ARGS__, 0, 0) |
| 238 | +# define QT_APPLE_SDK_VERSION_IMPL(major, minor, patch, ...) \ |
| 239 | + ((major) * 10000 + (minor) * 100 + (patch)) |
| 240 | + |
| 241 | +# define QT_APPLE_SDK_PLATFORM_MACOS(...) \ |
| 242 | + (__MAC_OS_X_VERSION_MAX_ALLOWED >= QT_APPLE_SDK_VERSION(__VA_ARGS__)) |
| 243 | +# define QT_APPLE_SDK_PLATFORM_IOS(...) \ |
| 244 | + (__IPHONE_OS_VERSION_MAX_ALLOWED >= QT_APPLE_SDK_VERSION(__VA_ARGS__)) |
| 245 | +# define QT_APPLE_SDK_PLATFORM_TVOS(...) \ |
| 246 | + (__TV_OS_VERSION_MAX_ALLOWED >= QT_APPLE_SDK_VERSION(__VA_ARGS__)) |
| 247 | +# define QT_APPLE_SDK_PLATFORM_WATCHOS(...) \ |
| 248 | + (__WATCH_OS_VERSION_MAX_ALLOWED >= QT_APPLE_SDK_VERSION(__VA_ARGS__)) |
| 249 | +# define QT_APPLE_SDK_PLATFORM_VISIONOS(...) \ |
| 250 | + (__VISION_OS_VERSION_MAX_ALLOWED >= QT_APPLE_SDK_VERSION(__VA_ARGS__)) |
| 251 | + |
| 252 | +# define QT_APPLE_SDK_EQUAL_OR_ABOVE_1(p1) \ |
| 253 | + (QT_APPLE_SDK_PLATFORM_##p1) |
| 254 | +# define QT_APPLE_SDK_EQUAL_OR_ABOVE_2(p1, p2) \ |
| 255 | + (QT_APPLE_SDK_PLATFORM_##p1 || QT_APPLE_SDK_PLATFORM_##p2) |
| 256 | +# define QT_APPLE_SDK_EQUAL_OR_ABOVE_3(p1, p2, p3) \ |
| 257 | + (QT_APPLE_SDK_PLATFORM_##p1 || QT_APPLE_SDK_PLATFORM_##p2 \ |
| 258 | + || QT_APPLE_SDK_PLATFORM_##p3) |
| 259 | +# define QT_APPLE_SDK_EQUAL_OR_ABOVE_4(p1, p2, p3, p4) \ |
| 260 | + (QT_APPLE_SDK_PLATFORM_##p1 || QT_APPLE_SDK_PLATFORM_##p2 \ |
| 261 | + || QT_APPLE_SDK_PLATFORM_##p3 || QT_APPLE_SDK_PLATFORM_##p4) |
| 262 | +# define QT_APPLE_SDK_EQUAL_OR_ABOVE_5(p1, p2, p3, p4, p5) \ |
| 263 | + (QT_APPLE_SDK_PLATFORM_##p1 || QT_APPLE_SDK_PLATFORM_##p2 \ |
| 264 | + || QT_APPLE_SDK_PLATFORM_##p3 || QT_APPLE_SDK_PLATFORM_##p4 \ |
| 265 | + || QT_APPLE_SDK_PLATFORM_##p5) |
| 266 | + |
| 267 | +# define QT_APPLE_SDK_EQUAL_OR_ABOVE(...) QT_OVERLOADED_MACRO(QT_APPLE_SDK_EQUAL_OR_ABOVE, __VA_ARGS__) |
| 268 | + |
222 | 269 | #else // !Q_OS_DARWIN |
223 | 270 |
|
224 | 271 | #define QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, ios, tvos, watchos) (0) |
|
227 | 274 | #define QT_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(ios) (0) |
228 | 275 | #define QT_TVOS_PLATFORM_SDK_EQUAL_OR_ABOVE(tvos) (0) |
229 | 276 | #define QT_WATCHOS_PLATFORM_SDK_EQUAL_OR_ABOVE(watchos) (0) |
| 277 | +#define QT_APPLE_SDK_EQUAL_OR_ABOVE(...) (0) |
230 | 278 |
|
231 | 279 | #endif // Q_OS_DARWIN |
232 | 280 |
|
|
0 commit comments