@@ -204,6 +204,10 @@ elseif(NOT DEFINED PLATFORM)
204204 message (FATAL_ERROR "PLATFORM argument not set. Bailing configure since I don't know what target you want to build for!" )
205205endif ()
206206
207+ if (PLATFORM MATCHES ".*COMBINED" AND NOT CMAKE_GENERATOR MATCHES "Xcode" )
208+ message (FATAL_ERROR "The combined builds support requires Xcode to be used as generator via '-G Xcode' command-line argument in CMake" )
209+ endif ()
210+
207211# Safeguard that the platform value is set and is one of the supported values
208212list (FIND _supported_platforms ${PLATFORM} contains_PLATFORM)
209213if ("${contains_PLATFORM} " EQUAL "-1" )
@@ -276,6 +280,8 @@ if(PLATFORM_INT STREQUAL "OS")
276280 if (NOT ARCHS)
277281 set (ARCHS armv7 armv7s arm64)
278282 set (APPLE_TARGET_TRIPLE_INT arm-apple -ios$${DEPLOYMENT_TARGET} )
283+ else ()
284+ set (APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT} -apple -ios${DEPLOYMENT_TARGET} )
279285 endif ()
280286elseif (PLATFORM_INT STREQUAL "OS64" )
281287 set (SDK_NAME iphoneos)
@@ -285,7 +291,7 @@ elseif(PLATFORM_INT STREQUAL "OS64")
285291 else ()
286292 set (ARCHS arm64)
287293 endif ()
288- set (APPLE_TARGET_TRIPLE_INT arm64 -apple -ios${DEPLOYMENT_TARGET} )
294+ set (APPLE_TARGET_TRIPLE_INT aarch64 -apple -ios${DEPLOYMENT_TARGET} )
289295 else ()
290296 set (APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT} -apple -ios${DEPLOYMENT_TARGET} )
291297 endif ()
@@ -306,7 +312,7 @@ elseif(PLATFORM_INT STREQUAL "OS64COMBINED")
306312 set (CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "arm64" )
307313 set (CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64" )
308314 endif ()
309- set (APPLE_TARGET_TRIPLE_INT arm64 -x86_64-apple -ios${DEPLOYMENT_TARGET} )
315+ set (APPLE_TARGET_TRIPLE_INT aarch64 -x86_64-apple -ios${DEPLOYMENT_TARGET} )
310316 else ()
311317 set (APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT} -apple -ios${DEPLOYMENT_TARGET} )
312318 endif ()
@@ -334,15 +340,15 @@ elseif(PLATFORM_INT STREQUAL "SIMULATORARM64")
334340 set (SDK_NAME iphonesimulator)
335341 if (NOT ARCHS)
336342 set (ARCHS arm64)
337- set (APPLE_TARGET_TRIPLE_INT arm64 -apple -ios${DEPLOYMENT_TARGET} -simulator)
343+ set (APPLE_TARGET_TRIPLE_INT aarch64 -apple -ios${DEPLOYMENT_TARGET} -simulator)
338344 else ()
339345 set (APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT} -apple -ios${DEPLOYMENT_TARGET} -simulator)
340346 endif ()
341347elseif (PLATFORM_INT STREQUAL "TVOS" )
342348 set (SDK_NAME appletvos)
343349 if (NOT ARCHS)
344350 set (ARCHS arm64)
345- set (APPLE_TARGET_TRIPLE_INT arm64 -apple -tvos${DEPLOYMENT_TARGET} )
351+ set (APPLE_TARGET_TRIPLE_INT aarch64 -apple -tvos${DEPLOYMENT_TARGET} )
346352 else ()
347353 set (APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT} -apple -tvos${DEPLOYMENT_TARGET} )
348354 endif ()
@@ -351,7 +357,7 @@ elseif (PLATFORM_INT STREQUAL "TVOSCOMBINED")
351357 if (MODERN_CMAKE)
352358 if (NOT ARCHS)
353359 set (ARCHS arm64 x86_64)
354- set (APPLE_TARGET_TRIPLE_INT arm64 -x86_64-apple -tvos${DEPLOYMENT_TARGET} )
360+ set (APPLE_TARGET_TRIPLE_INT aarch64 -x86_64-apple -tvos${DEPLOYMENT_TARGET} )
355361 set (CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=appletvos*] "arm64" )
356362 set (CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=appletvsimulator*] "x86_64" )
357363 set (CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=appletvos*] "arm64" )
@@ -375,7 +381,7 @@ elseif(PLATFORM_INT STREQUAL "WATCHOS")
375381 if (NOT ARCHS)
376382 if (XCODE_VERSION_INT VERSION_GREATER 10.0)
377383 set (ARCHS armv7k arm64_32)
378- set (APPLE_TARGET_TRIPLE_INT arm64_32 -apple -watchos${DEPLOYMENT_TARGET} )
384+ set (APPLE_TARGET_TRIPLE_INT aarch64_32 -apple -watchos${DEPLOYMENT_TARGET} )
379385 else ()
380386 set (ARCHS armv7k)
381387 set (APPLE_TARGET_TRIPLE_INT arm-apple -watchos${DEPLOYMENT_TARGET} )
@@ -389,7 +395,7 @@ elseif(PLATFORM_INT STREQUAL "WATCHOSCOMBINED")
389395 if (NOT ARCHS)
390396 if (XCODE_VERSION_INT VERSION_GREATER 10.0)
391397 set (ARCHS armv7k arm64_32 i386)
392- set (APPLE_TARGET_TRIPLE_INT arm64_32 -i386-apple -watchos${DEPLOYMENT_TARGET} )
398+ set (APPLE_TARGET_TRIPLE_INT aarch64_32 -i386-apple -watchos${DEPLOYMENT_TARGET} )
393399 set (CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=watchos*] "armv7k arm64_32" )
394400 set (CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=watchsimulator*] "i386" )
395401 set (CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=watchos*] "armv7k arm64_32" )
@@ -731,7 +737,7 @@ if(DEFINED APPLE_TARGET_TRIPLE_INT)
731737endif ()
732738
733739if (PLATFORM_INT MATCHES "^MAC_CATALYST" )
734- set (C_TARGET_FLAGS "-target ${APPLE_TARGET_TRIPLE_INT} - isystem ${CMAKE_OSX_SYSROOT_INT} /System/iOSSupport/usr/include -iframework ${CMAKE_OSX_SYSROOT_INT} /System/iOSSupport/System/Library/Frameworks" )
740+ set (C_TARGET_FLAGS "-isystem ${CMAKE_OSX_SYSROOT_INT} /System/iOSSupport/usr/include -iframework ${CMAKE_OSX_SYSROOT_INT} /System/iOSSupport/System/Library/Frameworks" )
735741endif ()
736742
737743if (ENABLE_BITCODE_INT)
@@ -765,20 +771,24 @@ else()
765771 set (VISIBILITY "-fvisibility=default" )
766772endif ()
767773
774+ if (DEFINED APPLE_TARGET_TRIPLE)
775+ set (APPLE_TARGET_TRIPLE_FLAG "-target ${APPLE_TARGET_TRIPLE} " )
776+ endif ()
777+
768778#Check if Xcode generator is used, since that will handle these flags automagically
769779if (CMAKE_GENERATOR MATCHES "Xcode" )
770780 message (STATUS "Not setting any manual command-line buildflags, since Xcode is selected as generator." )
771781else ()
772782 # Hidden visibility is required for C++ on iOS.
773- set (CMAKE_C_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} ${BITCODE} -fobjc-abi-version=2 ${FOBJC_ARC} ${CMAKE_C_FLAGS} " )
774- set (CMAKE_CXX_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} ${BITCODE} ${VISIBILITY} -fobjc-abi-version=2 ${FOBJC_ARC} ${CMAKE_CXX_FLAGS} " )
783+ set (CMAKE_C_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${ SDK_NAME_VERSION_FLAGS} ${BITCODE} -fobjc-abi-version=2 ${FOBJC_ARC} ${CMAKE_C_FLAGS} " )
784+ set (CMAKE_CXX_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${ SDK_NAME_VERSION_FLAGS} ${BITCODE} ${VISIBILITY} -fobjc-abi-version=2 ${FOBJC_ARC} ${CMAKE_CXX_FLAGS} " )
775785 set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -g ${CMAKE_CXX_FLAGS_DEBUG} " )
776786 set (CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS} -DNDEBUG -Os -ffast-math ${CMAKE_CXX_FLAGS_MINSIZEREL} " )
777787 set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS} -DNDEBUG -O2 -g -ffast-math ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} " )
778788 set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -DNDEBUG -O3 -ffast-math ${CMAKE_CXX_FLAGS_RELEASE} " )
779789 set (CMAKE_C_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS} " )
780790 set (CMAKE_CXX_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS} " )
781- set (CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp -arch ${CMAKE_OSX_ARCHITECTURES} " )
791+ set (CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp -arch ${CMAKE_OSX_ARCHITECTURES} ${APPLE_TARGET_TRIPLE_FLAG} " )
782792endif ()
783793
784794## Print status messages to inform of the current state
0 commit comments