[Cmake-commits] CMake branch, next, updated. v3.0.0-rc4-2781-g6125ddd

Clinton Stimpson clinton at elemtech.com
Tue May 6 11:19:47 EDT 2014


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  6125dddec9e337338782e1bc4e0bbefb39ee3ac1 (commit)
       via  5dfe9b7d5a88cf5191057a196262ced119340bda (commit)
      from  493256e1d3f12b16229340576566dab864d22317 (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 -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6125dddec9e337338782e1bc4e0bbefb39ee3ac1
commit 6125dddec9e337338782e1bc4e0bbefb39ee3ac1
Merge: 493256e 5dfe9b7
Author:     Clinton Stimpson <clinton at elemtech.com>
AuthorDate: Tue May 6 11:19:46 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue May 6 11:19:46 2014 -0400

    Merge topic 'xcode-sdkroot' into next
    
    5dfe9b7d Xcode: Find fallback SDK if one matching the OS version doesn't exist.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5dfe9b7d5a88cf5191057a196262ced119340bda
commit 5dfe9b7d5a88cf5191057a196262ced119340bda
Author:     Clinton Stimpson <clinton at elemtech.com>
AuthorDate: Tue Apr 29 22:46:18 2014 -0600
Commit:     Clinton Stimpson <clinton at elemtech.com>
CommitDate: Tue May 6 09:18:00 2014 -0600

    Xcode: Find fallback SDK if one matching the OS version doesn't exist.
    
    For example if one installs Xcode 4.6 on OS X 10.9, it doesn't contain
    a 10.9 SDK, so fallback to the next newest version which, in this case,
    happens to be a 10.8 SDK.
    
    This fixes bug #14572.

diff --git a/Modules/Platform/Darwin-Initialize.cmake b/Modules/Platform/Darwin-Initialize.cmake
index 82c6f3d..62fb985 100644
--- a/Modules/Platform/Darwin-Initialize.cmake
+++ b/Modules/Platform/Darwin-Initialize.cmake
@@ -66,24 +66,39 @@ elseif("${CMAKE_GENERATOR}" MATCHES Xcode
     # specially named SDKs.
     set(_CMAKE_OSX_SDKS_VER_SUFFIX_10.4 "u")
     set(_CMAKE_OSX_SDKS_VER_SUFFIX_10.3 ".9")
-    if(CMAKE_OSX_DEPLOYMENT_TARGET)
-      set(_CMAKE_OSX_SDKS_VER ${CMAKE_OSX_DEPLOYMENT_TARGET}${_CMAKE_OSX_SDKS_VER_SUFFIX_${CMAKE_OSX_DEPLOYMENT_TARGET}})
+
+    # find the latest SDK
+    set(_CMAKE_OSX_LATEST_SDK_VERSION "0.0")
+    file(GLOB _CMAKE_OSX_SDKS RELATIVE "${_CMAKE_OSX_SDKS_DIR}" "${_CMAKE_OSX_SDKS_DIR}/MacOSX*.sdk")
+    foreach(_SDK ${_CMAKE_OSX_SDKS})
+      if(_SDK MATCHES "MacOSX([0-9]+\\.[0-9]+)[^/]*\\.sdk" AND CMAKE_MATCH_1 VERSION_GREATER ${_CMAKE_OSX_LATEST_SDK_VERSION})
+        set(_CMAKE_OSX_LATEST_SDK_VERSION "${CMAKE_MATCH_1}")
+      endif()
+    endforeach()
+
+    # pick an SDK that works
+    set(_CMAKE_OSX_SYSROOT_DEFAULT)
+    foreach(ver ${CMAKE_OSX_DEPLOYMENT_TARGET}
+                ${_CURRENT_OSX_VERSION}
+                ${_CMAKE_OSX_LATEST_SDK_VERSION})
+      set(_CMAKE_OSX_DEPLOYMENT_TARGET ${ver})
+      set(_CMAKE_OSX_SDKS_VER ${_CMAKE_OSX_DEPLOYMENT_TARGET}${_CMAKE_OSX_SDKS_VER_SUFFIX_${_CMAKE_OSX_DEPLOYMENT_TARGET}})
       set(_CMAKE_OSX_SYSROOT_CHECK "${_CMAKE_OSX_SDKS_DIR}/MacOSX${_CMAKE_OSX_SDKS_VER}.sdk")
       if(IS_DIRECTORY "${_CMAKE_OSX_SYSROOT_CHECK}")
         set(_CMAKE_OSX_SYSROOT_DEFAULT "${_CMAKE_OSX_SYSROOT_CHECK}")
-      else()
-        set(_CMAKE_OSX_SDKS_VER ${_CURRENT_OSX_VERSION}${_CMAKE_OSX_SDKS_VER_SUFFIX_${_CURRENT_OSX_VERSION}})
-        set(_CMAKE_OSX_SYSROOT_DEFAULT "${_CMAKE_OSX_SDKS_DIR}/MacOSX${_CMAKE_OSX_SDKS_VER}.sdk")
-        message(WARNING
-          "CMAKE_OSX_DEPLOYMENT_TARGET is '${CMAKE_OSX_DEPLOYMENT_TARGET}' "
-          "but the matching SDK does not exist at:\n \"${_CMAKE_OSX_SYSROOT_CHECK}\"\n"
-          "Instead using SDK:\n \"${_CMAKE_OSX_SYSROOT_DEFAULT}\"\n"
-          "matching the host OS X version."
-          )
+        break()
       endif()
-    else()
-      set(_CMAKE_OSX_SDKS_VER ${_CURRENT_OSX_VERSION}${_CMAKE_OSX_SDKS_VER_SUFFIX_${_CURRENT_OSX_VERSION}})
-      set(_CMAKE_OSX_SYSROOT_DEFAULT "${_CMAKE_OSX_SDKS_DIR}/MacOSX${_CMAKE_OSX_SDKS_VER}.sdk")
+    endforeach()
+
+    if(CMAKE_OSX_DEPLOYMENT_TARGET AND
+        NOT CMAKE_OSX_DEPLOYMENT_TARGET VERSION_EQUAL ${_CMAKE_OSX_DEPLOYMENT_TARGET})
+      set(_CMAKE_OSX_SDKS_VER ${CMAKE_OSX_DEPLOYMENT_TARGET}${_CMAKE_OSX_SDKS_VER_SUFFIX_${CMAKE_OSX_DEPLOYMENT_TARGET}})
+      set(_CMAKE_OSX_SYSROOT_CHECK "${_CMAKE_OSX_SDKS_DIR}/MacOSX${_CMAKE_OSX_SDKS_VER}.sdk")
+      message(WARNING
+        "CMAKE_OSX_DEPLOYMENT_TARGET is '${CMAKE_OSX_DEPLOYMENT_TARGET}' "
+        "but the matching SDK does not exist at:\n \"${_CMAKE_OSX_SYSROOT_CHECK}\"\n"
+        "Instead using SDK:\n \"${_CMAKE_OSX_SYSROOT_DEFAULT}\"."
+        )
     endif()
   else()
     # Assume developer files are in root (such as Xcode 4.5 command-line tools).

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

Summary of changes:
 Modules/Platform/Darwin-Initialize.cmake |   43 ++++++++++++++++++++----------
 1 file changed, 29 insertions(+), 14 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list