cmLocalGenerator: Adapt AddArchitectureFlags for iOS universal fat binaries
Introduce new CMake variables:
-
CMAKE_IPHONEOS_ARCHITECTURES
-
CMAKE_IPHONESIMULATOR_ARCHITECTURES
-
CMAKE_APPLETVOS_ARCHITECTURES
-
CMAKE_APPLETVSIMULATOR_ARCHITECTURES
-
CMAKE_WATCHOS_ARCHITECTURES
-
CMAKE_WATCHSIMULATOR_ARCHITECTURES
-
CMAKE_IPHONEOS_SYSROOT
-
CMAKE_IPHONESIMULATOR_SYSROOT
-
CMAKE_APPLETVOS__SYSROOT
-
CMAKE_APPLETVSIMULATOR_SYSROOT
-
CMAKE_WATCHOS_SYSROOT
-
CMAKE_WATCHSIMULATOR_SYSROOT
These variables have to be set in pairs and only take effect if CMAKE_OSX_SYSROOT is not set.
Effect of a universal fat build:
$ file Tests/RunCMake/Framework/iosfatSHAREDFrameworkType-build/Framework.framework/Framework
Tests/RunCMake/Framework/iosfatSHAREDFrameworkType-build/Framework.framework/Framework: Mach-O universal binary with 4 architectures: [i386:Mach-O dynamically linked shared library i386] [arm_v7s:Mach-O dynamically linked shared library arm_v7s]
Tests/RunCMake/Framework/iosfatSHAREDFrameworkType-build/Framework.framework/Framework (for architecture i386): Mach-O dynamically linked shared library i386
Tests/RunCMake/Framework/iosfatSHAREDFrameworkType-build/Framework.framework/Framework (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64
Tests/RunCMake/Framework/iosfatSHAREDFrameworkType-build/Framework.framework/Framework (for architecture armv7): Mach-O dynamically linked shared library arm_v7
Tests/RunCMake/Framework/iosfatSHAREDFrameworkType-build/Framework.framework/Framework (for architecture armv7s): Mach-O dynamically linked shared library arm_v7s