summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombined.cmake
diff options
context:
space:
mode:
authorRuslan Baratov <ruslan_baratov@yahoo.com>2015-10-08 00:09:34 (GMT)
committerGregor Jasny <gjasny@googlemail.com>2015-12-10 21:36:12 (GMT)
commit565d080a9a1e133bda868e905226181b60e90356 (patch)
tree053f5bc1c985e5431d19a8cee5c4a5c71b071c5b /Tests/RunCMake/XcodeProject/XcodeIOSInstallCombined.cmake
parent34f5ef564aa94f2f66f35c708dbfca260b419e4b (diff)
downloadCMake-565d080a9a1e133bda868e905226181b60e90356.zip
CMake-565d080a9a1e133bda868e905226181b60e90356.tar.gz
CMake-565d080a9a1e133bda868e905226181b60e90356.tar.bz2
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.
Diffstat (limited to 'Tests/RunCMake/XcodeProject/XcodeIOSInstallCombined.cmake')
-rw-r--r--Tests/RunCMake/XcodeProject/XcodeIOSInstallCombined.cmake27
1 files changed, 27 insertions, 0 deletions
diff --git a/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombined.cmake b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombined.cmake
new file mode 100644
index 0000000..fc830b1
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombined.cmake
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.3)
+
+project(IOSInstallCombined CXX)
+
+set(CMAKE_OSX_SYSROOT iphoneos)
+set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO")
+set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf")
+set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO")
+
+set(CMAKE_OSX_ARCHITECTURES "armv7;arm64;i386;x86_64")
+
+add_executable(foo_app MACOSX_BUNDLE main.cpp)
+install(TARGETS foo_app BUNDLE DESTINATION bin)
+
+add_library(foo_static STATIC foo.cpp)
+install(TARGETS foo_static ARCHIVE DESTINATION lib)
+
+add_library(foo_shared SHARED foo.cpp)
+install(TARGETS foo_shared LIBRARY DESTINATION lib)
+
+add_library(foo_bundle MODULE foo.cpp)
+set_target_properties(foo_bundle PROPERTIES BUNDLE TRUE)
+install(TARGETS foo_bundle LIBRARY DESTINATION lib)
+
+add_library(foo_framework SHARED foo.cpp)
+set_target_properties(foo_framework PROPERTIES FRAMEWORK TRUE)
+install(TARGETS foo_framework FRAMEWORK DESTINATION lib)