|
70 | 70 | # SIMULATOR_WATCHOS = Build for x86_64 for watchOS Simulator. |
71 | 71 | # MAC = Build for x86_64 macOS. |
72 | 72 | # MAC_ARM64 = Build for Apple Silicon macOS. |
| 73 | +# MAC_UNIVERSAL = Combined build for x86_64 and Apple Silicon on macOS. |
73 | 74 | # MAC_CATALYST = Build for x86_64 macOS with Catalyst support (iOS toolchain on macOS). |
74 | 75 | # Note: The build argument "MACOSX_DEPLOYMENT_TARGET" can be used to control min-version of macOS |
75 | 76 | # MAC_CATALYST_ARM64 = Build for Apple Silicon macOS with Catalyst support (iOS toolchain on macOS). |
|
111 | 112 | # SIMULATOR_WATCHOS = x86_64 (i386 has since long been deprecated) |
112 | 113 | # MAC = x86_64 |
113 | 114 | # MAC_ARM64 = arm64 |
| 115 | +# MAC_UNIVERSAL = x86_64 arm64 |
114 | 116 | # MAC_CATALYST = x86_64 |
115 | 117 | # MAC_CATALYST_ARM64 = arm64 |
116 | 118 | # |
@@ -154,7 +156,7 @@ list(APPEND _supported_platforms |
154 | 156 | "OS" "OS64" "OS64COMBINED" "SIMULATOR" "SIMULATOR64" "SIMULATORARM64" |
155 | 157 | "TVOS" "TVOSCOMBINED" "SIMULATOR_TVOS" |
156 | 158 | "WATCHOS" "WATCHOSCOMBINED" "SIMULATOR_WATCHOS" |
157 | | - "MAC" "MAC_ARM64" |
| 159 | + "MAC" "MAC_ARM64" "MAC_UNIVERSAL" |
158 | 160 | "MAC_CATALYST" "MAC_CATALYST_ARM64") |
159 | 161 |
|
160 | 162 | # Cache what generator is used |
@@ -219,7 +221,7 @@ if("${contains_PLATFORM}" EQUAL "-1") |
219 | 221 | endif() |
220 | 222 |
|
221 | 223 | # Check if Apple Silicon is supported |
222 | | -if(PLATFORM MATCHES "^(MAC_ARM64)$|^(MAC_CATALYST_ARM64)$" AND ${CMAKE_VERSION} VERSION_LESS "3.19.5") |
| 224 | +if(PLATFORM MATCHES "^(MAC_ARM64)$|^(MAC_CATALYST_ARM64)$|^(MAC_UNIVERSAL)$" AND ${CMAKE_VERSION} VERSION_LESS "3.19.5") |
223 | 225 | message(FATAL_ERROR "Apple Silicon builds requires a minimum of CMake 3.19.5") |
224 | 226 | endif() |
225 | 227 |
|
@@ -258,6 +260,9 @@ if(NOT DEFINED DEPLOYMENT_TARGET) |
258 | 260 | elseif(PLATFORM STREQUAL "MAC_ARM64") |
259 | 261 | # Unless specified, SDK version 11.0 (Big Sur) is used by default as minimum target version (macos on arm). |
260 | 262 | set(DEPLOYMENT_TARGET "11.0") |
| 263 | + elseif(PLATFORM STREQUAL "MAC_UNIVERSAL") |
| 264 | + # Unless specified, SDK version 11.0 (Big Sur) is used by default as minimum target version for universal builds. |
| 265 | + set(DEPLOYMENT_TARGET "11.0") |
261 | 266 | elseif(PLATFORM STREQUAL "MAC_CATALYST" OR PLATFORM STREQUAL "MAC_CATALYST_ARM64") |
262 | 267 | # Unless specified, SDK version 13.0 is used by default as minimum target version (mac catalyst minimum requirement). |
263 | 268 | set(DEPLOYMENT_TARGET "13.1") |
@@ -459,6 +464,13 @@ elseif(PLATFORM_INT MATCHES "^(MAC_ARM64)$|^(MAC_CATALYST_ARM64)$") |
459 | 464 | elseif(PLATFORM_INT STREQUAL "MAC_CATALYST_ARM64") |
460 | 465 | set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-macabi) |
461 | 466 | endif() |
| 467 | +elseif(PLATFORM_INT STREQUAL "MAC_UNIVERSAL") |
| 468 | + set(SDK_NAME macosx) |
| 469 | + if(NOT ARCHS) |
| 470 | + set(ARCHS "x86_64;arm64") |
| 471 | + endif() |
| 472 | + string(REPLACE ";" "-" ARCHS_SPLIT "${ARCHS}") |
| 473 | + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-macosx${DEPLOYMENT_TARGET}) |
462 | 474 | else() |
463 | 475 | message(FATAL_ERROR "Invalid PLATFORM: ${PLATFORM_INT}") |
464 | 476 | endif() |
@@ -658,7 +670,7 @@ endif() |
658 | 670 | set(CMAKE_SYSTEM_VERSION ${SDK_VERSION} CACHE INTERNAL "") |
659 | 671 | set(UNIX ON CACHE BOOL "") |
660 | 672 | set(APPLE ON CACHE BOOL "") |
661 | | -if(PLATFORM STREQUAL "MAC" OR PLATFORM STREQUAL "MAC_ARM64") |
| 673 | +if(PLATFORM STREQUAL "MAC" OR PLATFORM STREQUAL "MAC_ARM64" OR PLATFORM STREQUAL "MAC_UNIVERSAL") |
662 | 674 | set(IOS OFF CACHE BOOL "") |
663 | 675 | set(MACOS ON CACHE BOOL "") |
664 | 676 | elseif(PLATFORM STREQUAL "MAC_CATALYST" OR PLATFORM STREQUAL "MAC_CATALYST_ARM64") |
|
0 commit comments