CMake/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedPrune.cmake
Ruslan Baratov 565d080a9a Xcode: Add support for combined install on iOS
This patch solves the problem of installing both: Device and Simulator
libraries on iOS. Before only one of them was installed.

If the IOS_INSTALL_COMBINED property is set on a target, a
special install hook will be activated which builds the corresponding
target and combines both at the install location.

The original patch was contributed by Ruslan Baratov, and polished by
Gregor Jasny.
2015-12-10 22:36:12 +01:00

37 lines
1003 B
CMake

cmake_minimum_required(VERSION 3.3)
project(XcodeIOSInstallCombinedPrune CXX)
set(CMAKE_OSX_SYSROOT iphoneos)
set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO")
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf")
add_library(foo SHARED foo.cpp)
install(TARGETS foo DESTINATION lib)
add_library(baz SHARED foo.cpp)
set_target_properties(
foo baz
PROPERTIES
XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] armv7
XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] armv7
XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] x86_64
XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] x86_64
)
add_library(boo SHARED foo.cpp)
set_target_properties(
boo
PROPERTIES
XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] arm64
XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] arm64
XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] i386
XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] i386
)
add_custom_command(
TARGET foo
POST_BUILD
COMMAND lipo -create $<TARGET_FILE:baz> $<TARGET_FILE:boo> -output $<TARGET_FILE:foo>
)