565d080a9a
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.
37 lines
1003 B
CMake
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>
|
|
)
|