Skip to content

Commit d16c291

Browse files
committed
Added platform option MAC_CATALYST_UNIVERSAL
Update README.md fixed a typo fixed help text
1 parent a52c591 commit d16c291

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ A CMake toolchain file for iOS (+ Catalyst), watchOS, tvOS and macOS development
2727
* _MAC_UNIVERSAL_ - to build for macOS on x86_64 and Apple Silicon (arm64) combined
2828
* _MAC_CATALYST_ - to build iOS for Mac (Catalyst, x86_64)
2929
* _MAC_CATALYST_ARM64_ - to build iOS for Mac on Apple Silicon (Catalyst, arm64)
30+
* _MAC_CATALYST_UNIVERSAL_ - to build iOS for Mac on x86_64 and Mac on arm64 combined
3031

3132
# Example usage
3233

ios.toolchain.cmake

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
# Note: The build argument "MACOSX_DEPLOYMENT_TARGET" can be used to control min-version of macOS
8282
# MAC_CATALYST_ARM64 = Build for Apple Silicon macOS with Catalyst support (iOS toolchain on macOS).
8383
# Note: The build argument "MACOSX_DEPLOYMENT_TARGET" can be used to control min-version of macOS
84+
# MAC_CATALYST_UNIVERSAL = Combined build for x86_64 and Apple Silicon on Catalyst.
8485
#
8586
# CMAKE_OSX_SYSROOT: Path to the SDK to use. By default this is
8687
# automatically determined from PLATFORM and xcodebuild, but
@@ -123,6 +124,7 @@
123124
# MAC_UNIVERSAL = x86_64 arm64
124125
# MAC_CATALYST = x86_64
125126
# MAC_CATALYST_ARM64 = arm64
127+
# MAC_CATALYST_UNIVERSAL = x86_64 arm64
126128
#
127129
# NOTE: When manually specifying ARCHS, put a semi-colon between the entries. E.g., -DARCHS="armv7;arm64"
128130
#
@@ -166,7 +168,7 @@ list(APPEND _supported_platforms
166168
"WATCHOS" "WATCHOSCOMBINED" "SIMULATOR_WATCHOS" "SIMULATORARM64_WATCHOS"
167169
"MAC" "MAC_ARM64" "MAC_UNIVERSAL"
168170
"VISIONOS" "SIMULATOR_VISIONOS" "VISIONOSCOMBINED"
169-
"MAC_CATALYST" "MAC_CATALYST_ARM64")
171+
"MAC_CATALYST" "MAC_CATALYST_ARM64" "MAC_CATALYST_UNIVERSAL")
170172

171173
# Cache what generator is used
172174
set(USED_CMAKE_GENERATOR "${CMAKE_GENERATOR}")
@@ -230,7 +232,7 @@ if("${contains_PLATFORM}" EQUAL "-1")
230232
endif()
231233

232234
# Check if Apple Silicon is supported
233-
if(PLATFORM MATCHES "^(MAC_ARM64)$|^(MAC_CATALYST_ARM64)$|^(MAC_UNIVERSAL)$" AND ${CMAKE_VERSION} VERSION_LESS "3.19.5")
235+
if(PLATFORM MATCHES "^(MAC_ARM64)$|^(MAC_CATALYST_ARM64)$|^(MAC_UNIVERSAL)$|^(MAC_CATALYST_UNIVERSAL)$" AND ${CMAKE_VERSION} VERSION_LESS "3.19.5")
234236
message(FATAL_ERROR "Apple Silicon builds requires a minimum of CMake 3.19.5")
235237
endif()
236238

@@ -275,7 +277,7 @@ if(NOT DEFINED DEPLOYMENT_TARGET)
275277
elseif(PLATFORM STREQUAL "MAC_UNIVERSAL")
276278
# Unless specified, SDK version 11.0 (Big Sur) is used by default as minimum target version for universal builds.
277279
set(DEPLOYMENT_TARGET "11.0")
278-
elseif(PLATFORM STREQUAL "MAC_CATALYST" OR PLATFORM STREQUAL "MAC_CATALYST_ARM64")
280+
elseif(PLATFORM STREQUAL "MAC_CATALYST" OR PLATFORM STREQUAL "MAC_CATALYST_ARM64" OR PLATFORM STREQUAL "MAC_CATALYST_UNIVERSAL")
279281
# Unless specified, SDK version 13.0 is used by default as the minimum target version (mac catalyst minimum requirement).
280282
set(DEPLOYMENT_TARGET "13.1")
281283
else()
@@ -553,6 +555,13 @@ elseif(PLATFORM_INT STREQUAL "MAC_UNIVERSAL")
553555
endif()
554556
string(REPLACE ";" "-" ARCHS_SPLIT "${ARCHS}")
555557
set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-macosx${DEPLOYMENT_TARGET})
558+
elseif(PLATFORM_INT STREQUAL "MAC_CATALYST_UNIVERSAL")
559+
set(SDK_NAME macosx)
560+
if(NOT ARCHS)
561+
set(ARCHS "x86_64;arm64")
562+
endif()
563+
string(REPLACE ";" "-" ARCHS_SPLIT "${ARCHS}")
564+
set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-macabi)
556565
else()
557566
message(FATAL_ERROR "Invalid PLATFORM: ${PLATFORM_INT}")
558567
endif()
@@ -761,7 +770,7 @@ set(APPLE ON CACHE BOOL "")
761770
if(PLATFORM STREQUAL "MAC" OR PLATFORM STREQUAL "MAC_ARM64" OR PLATFORM STREQUAL "MAC_UNIVERSAL")
762771
set(IOS OFF CACHE BOOL "")
763772
set(MACOS ON CACHE BOOL "")
764-
elseif(PLATFORM STREQUAL "MAC_CATALYST" OR PLATFORM STREQUAL "MAC_CATALYST_ARM64")
773+
elseif(PLATFORM STREQUAL "MAC_CATALYST" OR PLATFORM STREQUAL "MAC_CATALYST_ARM64" OR PLATFORM STREQUAL "MAC_CATALYST_UNIVERSAL")
765774
set(IOS ON CACHE BOOL "")
766775
set(MACOS ON CACHE BOOL "")
767776
elseif(PLATFORM STREQUAL "VISIONOS" OR PLATFORM STREQUAL "SIMULATOR_VISIONOS" OR PLATFORM STREQUAL "VISIONOSCOMBINED")

0 commit comments

Comments
 (0)