This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  b2560102bb7999d53577eb34fa9645ac18ec476d (commit)
       via  e3fc2899c89fb075a695d6140eaadf11db85d96c (commit)
      from  a308fd006deb61d13f9d6d96c61fb8300ba3a35e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b2560102bb7999d53577eb34fa9645ac18ec476d
commit b2560102bb7999d53577eb34fa9645ac18ec476d
Merge: a308fd0 e3fc289
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Mar 15 10:10:28 2016 -0400
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Tue Mar 15 10:10:28 2016 -0400

    Merge topic 'ios-install-combined-one-arch' into next
    
    e3fc2899 Fix iOS combined feature for single architecture targets


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e3fc2899c89fb075a695d6140eaadf11db85d96c
commit e3fc2899c89fb075a695d6140eaadf11db85d96c
Author:     Ruslan Baratov <ruslan_bara...@yahoo.com>
AuthorDate: Mon Mar 14 17:27:53 2016 +0700
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Tue Mar 15 10:09:50 2016 -0400

    Fix iOS combined feature for single architecture targets
    
    If list of valid target architectures is empty for given SDK then there will
    be no VALID_ARCHS build setting returned by Xcode. Return "" (empty string)
    explicitly in this case. This may happens if CMAKE_IOS_INSTALL_COMBINED is 
ON
    but only one architecture used in target.

diff --git a/Modules/CMakeIOSInstallCombined.cmake 
b/Modules/CMakeIOSInstallCombined.cmake
index f052a3b..1256f56 100644
--- a/Modules/CMakeIOSInstallCombined.cmake
+++ b/Modules/CMakeIOSInstallCombined.cmake
@@ -52,7 +52,14 @@ function(_ios_install_combined_get_build_setting sdk 
variable resultvar)
   endif()
 
   if(NOT output MATCHES " ${variable} = ([^\n]*)")
-    message(FATAL_ERROR "${variable} not found.")
+    if("${variable}" STREQUAL "VALID_ARCHS")
+      # VALID_ARCHS may be unset by user for given SDK
+      # (e.g. for build without simulator).
+      set("${resultvar}" "" PARENT_SCOPE)
+      return()
+    else()
+      message(FATAL_ERROR "${variable} not found.")
+    endif()
   endif()
 
   set("${resultvar}" "${CMAKE_MATCH_1}" PARENT_SCOPE)
@@ -72,6 +79,9 @@ function(_ios_install_combined_get_valid_archs sdk resultvar)
   list(REMOVE_ITEM valid_archs "") # remove empty elements
   list(REMOVE_DUPLICATES valid_archs)
 
+  string(REPLACE ";" " " printable "${valid_archs}")
+  _ios_install_combined_message("Architectures (${sdk}): ${printable}")
+
   set("${resultvar}" "${valid_archs}" PARENT_SCOPE)
 endfunction()
 
diff --git a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake 
b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
index 395c74b..b77d5d4 100644
--- a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
+++ b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
@@ -97,6 +97,7 @@ if(NOT XCODE_VERSION VERSION_LESS 7)
 endif()
 
 if(NOT XCODE_VERSION VERSION_LESS 6)
+  # XcodeIOSInstallCombined
   set(RunCMake_TEST_BINARY_DIR 
${RunCMake_BINARY_DIR}/XcodeIOSInstallCombined-build)
   set(RunCMake_TEST_NO_CLEAN 1)
   set(RunCMake_TEST_OPTIONS
@@ -114,6 +115,7 @@ if(NOT XCODE_VERSION VERSION_LESS 6)
   unset(RunCMake_TEST_NO_CLEAN)
   unset(RunCMake_TEST_OPTIONS)
 
+  # XcodeIOSInstallCombinedPrune
   set(RunCMake_TEST_BINARY_DIR 
${RunCMake_BINARY_DIR}/XcodeIOSInstallCombinedPrune-build)
   set(RunCMake_TEST_NO_CLEAN 1)
   set(RunCMake_TEST_OPTIONS
@@ -130,4 +132,22 @@ if(NOT XCODE_VERSION VERSION_LESS 6)
   unset(RunCMake_TEST_BINARY_DIR)
   unset(RunCMake_TEST_NO_CLEAN)
   unset(RunCMake_TEST_OPTIONS)
+
+  # XcodeIOSInstallCombinedSingleArch
+  set(RunCMake_TEST_BINARY_DIR 
${RunCMake_BINARY_DIR}/XcodeIOSInstallCombinedSingleArch-build)
+  set(RunCMake_TEST_NO_CLEAN 1)
+  set(RunCMake_TEST_OPTIONS
+    "-DCMAKE_INSTALL_PREFIX:PATH=${RunCMake_TEST_BINARY_DIR}/_install"
+    "-DCMAKE_IOS_INSTALL_COMBINED=YES")
+
+  file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
+  file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
+
+  run_cmake(XcodeIOSInstallCombinedSingleArch)
+  run_cmake_command(XcodeIOSInstallCombinedSingleArch-build ${CMAKE_COMMAND} 
--build .)
+  run_cmake_command(XcodeIOSInstallCombinedSingleArch-install ${CMAKE_COMMAND} 
--build . --target install)
+
+  unset(RunCMake_TEST_BINARY_DIR)
+  unset(RunCMake_TEST_NO_CLEAN)
+  unset(RunCMake_TEST_OPTIONS)
 endif()
diff --git 
a/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedSingleArch-install-check.cmake
 
b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedSingleArch-install-check.cmake
new file mode 100644
index 0000000..3c11ae0
--- /dev/null
+++ 
b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedSingleArch-install-check.cmake
@@ -0,0 +1,25 @@
+function(verify_architecture file)
+  execute_process(
+    COMMAND xcrun lipo -info ${RunCMake_TEST_BINARY_DIR}/_install/${file}
+    OUTPUT_VARIABLE lipo_out
+    ERROR_VARIABLE lipo_err
+    RESULT_VARIABLE lipo_result)
+  if(NOT lipo_result EQUAL "0")
+    message(SEND_ERROR "lipo -info failed: ${lipo_err}")
+    return()
+  endif()
+
+  string(REGEX MATCHALL "is architecture: [^ \n\t]+" architecture 
"${lipo_out}")
+  string(REGEX REPLACE "is architecture: " "" actual "${architecture}")
+
+  set(expected armv7)
+
+  if(NOT actual STREQUAL expected)
+    message(SEND_ERROR
+      "The actual library architecture:\n ${actual} \n"
+      "which do not match expected ones:\n ${expected} \n"
+      "lipo output:\n${lipo_out}")
+  endif()
+endfunction()
+
+verify_architecture(lib/libfoo.dylib)
diff --git 
a/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedSingleArch.cmake 
b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedSingleArch.cmake
new file mode 100644
index 0000000..4b5e7ce
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedSingleArch.cmake
@@ -0,0 +1,19 @@
+cmake_minimum_required(VERSION 3.3)
+
+project(XcodeIOSInstallCombinedSingleArch 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)
+
+set_target_properties(
+  foo
+  PROPERTIES
+  XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] armv7
+  XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] armv7
+  XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] ""
+  XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] ""
+)

-----------------------------------------------------------------------

Summary of changes:
 Modules/CMakeIOSInstallCombined.cmake              |   12 +++++++++-
 Tests/RunCMake/XcodeProject/RunCMakeTest.cmake     |   20 ++++++++++++++++
 ...OSInstallCombinedSingleArch-install-check.cmake |   25 ++++++++++++++++++++
 .../XcodeIOSInstallCombinedSingleArch.cmake        |   19 +++++++++++++++
 4 files changed, 75 insertions(+), 1 deletion(-)
 create mode 100644 
Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedSingleArch-install-check.cmake
 create mode 100644 
Tests/RunCMake/XcodeProject/XcodeIOSInstallCombinedSingleArch.cmake


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits

Reply via email to