summaryrefslogtreecommitdiff
path: root/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedPrune-install-check.cmake
diff options
context:
space:
mode:
authorRuslan Baratov <ruslan_baratov@yahoo.com>2015-10-08 03:09:34 +0300
committerGregor Jasny <gjasny@googlemail.com>2015-12-10 22:36:12 +0100
commit565d080a9a1e133bda868e905226181b60e90356 (patch)
tree053f5bc1c985e5431d19a8cee5c4a5c71b071c5b /Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedPrune-install-check.cmake
parent34f5ef564aa94f2f66f35c708dbfca260b419e4b (diff)
downloadcmake-565d080a9a1e133bda868e905226181b60e90356.tar.gz
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/XcodeIOSInstallCombinedPrune-install-check.cmake')
-rw-r--r--Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedPrune-install-check.cmake26
1 files changed, 26 insertions, 0 deletions
diff --git a/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedPrune-install-check.cmake b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedPrune-install-check.cmake
new file mode 100644
index 0000000000..83da17da7e
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedPrune-install-check.cmake
@@ -0,0 +1,26 @@
+function(verify_architectures file)
+ execute_process(
+ COMMAND xcrun otool -vf ${RunCMake_TEST_BINARY_DIR}/_install/${file}
+ OUTPUT_VARIABLE otool_out
+ ERROR_VARIABLE otool_err
+ RESULT_VARIABLE otool_result)
+ if(NOT otool_result EQUAL "0")
+ message(SEND_ERROR "Could not retrieve fat headers: ${otool_err}")
+ return()
+ endif()
+
+ string(REGEX MATCHALL "architecture [^ \n\t]+" architectures ${otool_out})
+ string(REPLACE "architecture " "" actual "${architectures}")
+ list(SORT actual)
+
+ set(expected armv7 x86_64)
+
+ if(NOT actual STREQUAL expected)
+ message(SEND_ERROR
+ "The actual library contains the architectures:\n ${actual} \n"
+ "which do not match expected ones:\n ${expected} \n"
+ "otool output:\n${otool_out}")
+ endif()
+endfunction()
+
+verify_architectures(lib/libfoo.dylib)