Skip to content

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

Merge request reports