[Cmake-commits] CMake branch, next, updated. v3.0.0-rc4-2601-g5b004e8

Brad King brad.king at kitware.com
Tue Apr 29 10:29:09 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  5b004e8432404ad6b93176be520f9222a7a5de5e (commit)
       via  bbc358c3fc1f09fe2a483996ae1359dba3f587f4 (commit)
       via  0cce556b5fbe629dccee294aeece7c275343ed64 (commit)
       via  0200d0a9c46da512a64aed381fd2e8781e04e32e (commit)
       via  416761e35c828092bc8a7dbe68b3fbe65495f01e (commit)
      from  8a23c225343c9399d751ec056f0df25d16bf0fef (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=5b004e8432404ad6b93176be520f9222a7a5de5e
commit 5b004e8432404ad6b93176be520f9222a7a5de5e
Merge: 8a23c22 bbc358c
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Apr 29 10:29:08 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Apr 29 10:29:08 2014 -0400

    Merge topic 'osx-init-early' into next
    
    bbc358c3 Merge branch 'master' into osx-init-early
    0cce556b Xcode: Use sysroot and deployment target to identify compiler
    0200d0a9 OS X: Factor a Darwin-Initialize module out of Platform/Darwin
    416761e3 Add platform-specific initialization step when enabling languages


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bbc358c3fc1f09fe2a483996ae1359dba3f587f4
commit bbc358c3fc1f09fe2a483996ae1359dba3f587f4
Merge: 0cce556 c51d07d
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Apr 29 09:36:55 2014 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Apr 29 09:36:55 2014 -0400

    Merge branch 'master' into osx-init-early
    
    Resolve conflict in Source/cmGlobalGenerator.cxx by integrating
    changes from both sides.

diff --cc Modules/Platform/Darwin.cmake
index 81e8465,df0756b..e25df1e
--- a/Modules/Platform/Darwin.cmake
+++ b/Modules/Platform/Darwin.cmake
@@@ -64,9 -64,146 +64,9 @@@ if(NOT DEFINED CMAKE_INSTALL_NAME_TOOL
    mark_as_advanced(CMAKE_INSTALL_NAME_TOOL)
  endif()
  
 -# Ask xcode-select where to find /Developer or fall back to ancient location.
 -execute_process(COMMAND xcode-select -print-path
 -  OUTPUT_VARIABLE _stdout
 -  OUTPUT_STRIP_TRAILING_WHITESPACE
 -  ERROR_VARIABLE _stderr
 -  RESULT_VARIABLE _failed)
 -if(NOT _failed AND IS_DIRECTORY ${_stdout})
 -  set(OSX_DEVELOPER_ROOT ${_stdout})
 -elseif(IS_DIRECTORY "/Developer")
 -  set(OSX_DEVELOPER_ROOT "/Developer")
 -else()
 -  set(OSX_DEVELOPER_ROOT "")
 -endif()
 -
 -execute_process(COMMAND sw_vers -productVersion
 -  OUTPUT_VARIABLE CURRENT_OSX_VERSION
 -  OUTPUT_STRIP_TRAILING_WHITESPACE)
 -
 -# Save CMAKE_OSX_ARCHITECTURES from the environment.
 -set(CMAKE_OSX_ARCHITECTURES "$ENV{CMAKE_OSX_ARCHITECTURES}" CACHE STRING
 -  "Build architectures for OSX")
 -
 -#----------------------------------------------------------------------------
 -# _CURRENT_OSX_VERSION - as a two-component string: 10.5, 10.6, ...
 -#
 -string(REGEX REPLACE "^([0-9]+\\.[0-9]+).*$" "\\1"
 -  _CURRENT_OSX_VERSION "${CURRENT_OSX_VERSION}")
 -
 -#----------------------------------------------------------------------------
 -# CMAKE_OSX_DEPLOYMENT_TARGET
 -
 -# Set cache variable - end user may change this during ccmake or cmake-gui configure.
 -if(_CURRENT_OSX_VERSION VERSION_GREATER 10.3)
 -  set(CMAKE_OSX_DEPLOYMENT_TARGET "$ENV{MACOSX_DEPLOYMENT_TARGET}" CACHE STRING
 -    "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value.")
 -endif()
 -
 -#----------------------------------------------------------------------------
 -# CMAKE_OSX_SYSROOT
 -
 -if(CMAKE_OSX_SYSROOT)
 -  # Use the existing value without further computation to choose a default.
 -  set(_CMAKE_OSX_SYSROOT_DEFAULT "${CMAKE_OSX_SYSROOT}")
 -elseif(NOT "x$ENV{SDKROOT}" STREQUAL "x" AND
 -        (NOT "x$ENV{SDKROOT}" MATCHES "/" OR IS_DIRECTORY "$ENV{SDKROOT}"))
 -  # Use the value of SDKROOT from the environment.
 -  set(_CMAKE_OSX_SYSROOT_DEFAULT "$ENV{SDKROOT}")
 -elseif("${CMAKE_GENERATOR}" MATCHES Xcode
 -       OR CMAKE_OSX_DEPLOYMENT_TARGET
 -       OR CMAKE_OSX_ARCHITECTURES MATCHES "[^;]"
 -       OR NOT EXISTS "/usr/include/sys/types.h")
 -  # Find installed SDKs in either Xcode-4.3+ or pre-4.3 SDKs directory.
 -  set(_CMAKE_OSX_SDKS_DIR "")
 -  if(OSX_DEVELOPER_ROOT)
 -    foreach(d Platforms/MacOSX.platform/Developer/SDKs SDKs)
 -      file(GLOB _CMAKE_OSX_SDKS ${OSX_DEVELOPER_ROOT}/${d}/*)
 -      if(_CMAKE_OSX_SDKS)
 -        set(_CMAKE_OSX_SDKS_DIR ${OSX_DEVELOPER_ROOT}/${d})
 -        break()
 -      endif()
 -    endforeach()
 -  endif()
 -
 -  if(_CMAKE_OSX_SDKS_DIR)
 -    # Select SDK for current OSX version accounting for the known
 -    # 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}})
 -      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."
 -          )
 -      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")
 -    endif()
 -  else()
 -    # Assume developer files are in root (such as Xcode 4.5 command-line tools).
 -    set(_CMAKE_OSX_SYSROOT_DEFAULT "")
 -  endif()
 -endif()
 -
 -# Set cache variable - end user may change this during ccmake or cmake-gui configure.
 -# Choose the type based on the current value.
 -set(_CMAKE_OSX_SYSROOT_TYPE STRING)
 -foreach(v CMAKE_OSX_SYSROOT _CMAKE_OSX_SYSROOT_DEFAULT)
 -  if("x${${v}}" MATCHES "/")
 -    set(_CMAKE_OSX_SYSROOT_TYPE PATH)
 -    break()
 -  endif()
 -endforeach()
 -set(CMAKE_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_DEFAULT}" CACHE ${_CMAKE_OSX_SYSROOT_TYPE}
 -  "The product will be built against the headers and libraries located inside the indicated SDK.")
 -
 -# Transform the cached value to something we can use.
 -set(_CMAKE_OSX_SYSROOT_ORIG "${CMAKE_OSX_SYSROOT}")
 -set(_CMAKE_OSX_SYSROOT_PATH "")
 -if(CMAKE_OSX_SYSROOT)
 -  if("x${CMAKE_OSX_SYSROOT}" MATCHES "/")
 -    # This is a path to the SDK.  Make sure it exists.
 -    if(NOT IS_DIRECTORY "${CMAKE_OSX_SYSROOT}")
 -      message(WARNING "Ignoring CMAKE_OSX_SYSROOT value:\n ${CMAKE_OSX_SYSROOT}\n"
 -        "because the directory does not exist.")
 -      set(CMAKE_OSX_SYSROOT "")
 -      set(_CMAKE_OSX_SYSROOT_ORIG "")
 -    endif()
 -    set(_CMAKE_OSX_SYSROOT_PATH "${CMAKE_OSX_SYSROOT}")
 -  else()
 -    # Transform the sdk name into a path.
 -    execute_process(
 -      COMMAND xcodebuild -sdk ${CMAKE_OSX_SYSROOT} -version Path
 -      OUTPUT_VARIABLE _stdout
 -      OUTPUT_STRIP_TRAILING_WHITESPACE
 -      ERROR_VARIABLE _stderr
 -      RESULT_VARIABLE _failed
 -      )
 -    if(NOT _failed AND IS_DIRECTORY "${_stdout}")
 -      set(_CMAKE_OSX_SYSROOT_PATH "${_stdout}")
 -      # For non-Xcode generators use the path.
 -      if(NOT "${CMAKE_GENERATOR}" MATCHES "Xcode")
 -        set(CMAKE_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_PATH}")
 -      endif()
 -    endif()
 -  endif()
 -endif()
 -
  # Make sure the combination of SDK and Deployment Target are allowed
  if(CMAKE_OSX_DEPLOYMENT_TARGET)
-   if("${_CMAKE_OSX_SYSROOT_PATH}" MATCHES "^.*/MacOSX([0-9]+\\.[0-9]+)[^/]*\\.sdk")
+   if("${_CMAKE_OSX_SYSROOT_PATH}" MATCHES "/MacOSX([0-9]+\\.[0-9]+)[^/]*\\.sdk")
      set(_sdk_ver "${CMAKE_MATCH_1}")
    elseif("${_CMAKE_OSX_SYSROOT_ORIG}" MATCHES "^macosx([0-9]+\\.[0-9]+)$")
      set(_sdk_ver "${CMAKE_MATCH_1}")
diff --cc Source/cmGlobalGenerator.cxx
index f933f27,f09f7b3..1c48d39
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@@ -435,20 -443,8 +446,20 @@@ cmGlobalGenerator::EnableLanguage(std::
      fpath += "/CMakeSystem.cmake";
      mf->ReadListFile(0,fpath.c_str());
      }
 +
 +  // **** Load the system specific initialization if not yet loaded
 +  if (!mf->GetDefinition("CMAKE_SYSTEM_SPECIFIC_INITIALIZE_LOADED"))
 +    {
 +    fpath = mf->GetModulesFile("CMakeSystemSpecificInitialize.cmake");
 +    if(!mf->ReadListFile(0,fpath.c_str()))
 +      {
 +      cmSystemTools::Error("Could not find cmake module file: ",
 +                           fpath.c_str());
 +      }
 +    }
 +
-   std::map<cmStdString, bool> needTestLanguage;
-   std::map<cmStdString, bool> needSetLanguageEnabledMaps;
+   std::map<std::string, bool> needTestLanguage;
+   std::map<std::string, bool> needSetLanguageEnabledMaps;
    // foreach language
    // load the CMakeDetermine(LANG)Compiler.cmake file to find
    // the compiler

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0cce556b5fbe629dccee294aeece7c275343ed64
commit 0cce556b5fbe629dccee294aeece7c275343ed64
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Apr 29 09:21:00 2014 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Apr 29 09:36:15 2014 -0400

    Xcode: Use sysroot and deployment target to identify compiler
    
    Use CMAKE_OSX_SYSROOT and CMAKE_OSX_DEPLOYMENT_TARGET to set the Xcode
    SDKROOT and MACOSX_DEPLOYMENT_TARGET build settings.  This is necessary
    because some versions of Xcode select a different compiler based on
    these settings.  We need to make sure the compiler identified during
    language initialization matches what will be used for the actual build.

diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake
index 067892d..9a256d5 100644
--- a/Modules/CMakeDetermineCompilerId.cmake
+++ b/Modules/CMakeDetermineCompilerId.cmake
@@ -215,6 +215,17 @@ Id flags: ${testflags}
     else()
       set(id_toolset "")
     endif()
+    if(CMAKE_OSX_DEPLOYMENT_TARGET)
+      set(id_deployment_target
+        "MACOSX_DEPLOYMENT_TARGET = \"${CMAKE_OSX_DEPLOYMENT_TARGET}\";")
+    else()
+      set(id_deployment_target "")
+    endif()
+    if(CMAKE_OSX_SYSROOT)
+      set(id_sdkroot "SDKROOT = \"${CMAKE_OSX_SYSROOT}\";")
+    else()
+      set(id_sdkroot "")
+    endif()
     if(NOT ${XCODE_VERSION} VERSION_LESS 3)
       set(v 3)
       set(ext xcodeproj)
diff --git a/Modules/CompilerId/Xcode-3.pbxproj.in b/Modules/CompilerId/Xcode-3.pbxproj.in
index 6f861eb..eabfc6b 100644
--- a/Modules/CompilerId/Xcode-3.pbxproj.in
+++ b/Modules/CompilerId/Xcode-3.pbxproj.in
@@ -84,6 +84,8 @@
 				CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)";
 				SYMROOT = .;
 				@id_toolset@
+				@id_deployment_target@
+				@id_sdkroot@
 			};
 			name = Debug;
 		};

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0200d0a9c46da512a64aed381fd2e8781e04e32e
commit 0200d0a9c46da512a64aed381fd2e8781e04e32e
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Apr 29 09:16:56 2014 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Apr 29 09:36:14 2014 -0400

    OS X: Factor a Darwin-Initialize module out of Platform/Darwin
    
    Initialize variables CMAKE_OSX_SYSROOT, CMAKE_OSX_DEPLOYMENT_TARGET, and
    CMAKE_OSX_ARCHITECTURES prior to enabling any languages.  This will
    allow compiler identification to consider these values.

diff --git a/Modules/Platform/Darwin-Initialize.cmake b/Modules/Platform/Darwin-Initialize.cmake
new file mode 100644
index 0000000..82c6f3d
--- /dev/null
+++ b/Modules/Platform/Darwin-Initialize.cmake
@@ -0,0 +1,136 @@
+# Ask xcode-select where to find /Developer or fall back to ancient location.
+execute_process(COMMAND xcode-select -print-path
+  OUTPUT_VARIABLE _stdout
+  OUTPUT_STRIP_TRAILING_WHITESPACE
+  ERROR_VARIABLE _stderr
+  RESULT_VARIABLE _failed)
+if(NOT _failed AND IS_DIRECTORY ${_stdout})
+  set(OSX_DEVELOPER_ROOT ${_stdout})
+elseif(IS_DIRECTORY "/Developer")
+  set(OSX_DEVELOPER_ROOT "/Developer")
+else()
+  set(OSX_DEVELOPER_ROOT "")
+endif()
+
+execute_process(COMMAND sw_vers -productVersion
+  OUTPUT_VARIABLE CURRENT_OSX_VERSION
+  OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+# Save CMAKE_OSX_ARCHITECTURES from the environment.
+set(CMAKE_OSX_ARCHITECTURES "$ENV{CMAKE_OSX_ARCHITECTURES}" CACHE STRING
+  "Build architectures for OSX")
+
+#----------------------------------------------------------------------------
+# _CURRENT_OSX_VERSION - as a two-component string: 10.5, 10.6, ...
+#
+string(REGEX REPLACE "^([0-9]+\\.[0-9]+).*$" "\\1"
+  _CURRENT_OSX_VERSION "${CURRENT_OSX_VERSION}")
+
+#----------------------------------------------------------------------------
+# CMAKE_OSX_DEPLOYMENT_TARGET
+
+# Set cache variable - end user may change this during ccmake or cmake-gui configure.
+if(_CURRENT_OSX_VERSION VERSION_GREATER 10.3)
+  set(CMAKE_OSX_DEPLOYMENT_TARGET "$ENV{MACOSX_DEPLOYMENT_TARGET}" CACHE STRING
+    "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value.")
+endif()
+
+#----------------------------------------------------------------------------
+# CMAKE_OSX_SYSROOT
+
+if(CMAKE_OSX_SYSROOT)
+  # Use the existing value without further computation to choose a default.
+  set(_CMAKE_OSX_SYSROOT_DEFAULT "${CMAKE_OSX_SYSROOT}")
+elseif(NOT "x$ENV{SDKROOT}" STREQUAL "x" AND
+        (NOT "x$ENV{SDKROOT}" MATCHES "/" OR IS_DIRECTORY "$ENV{SDKROOT}"))
+  # Use the value of SDKROOT from the environment.
+  set(_CMAKE_OSX_SYSROOT_DEFAULT "$ENV{SDKROOT}")
+elseif("${CMAKE_GENERATOR}" MATCHES Xcode
+       OR CMAKE_OSX_DEPLOYMENT_TARGET
+       OR CMAKE_OSX_ARCHITECTURES MATCHES "[^;]"
+       OR NOT EXISTS "/usr/include/sys/types.h")
+  # Find installed SDKs in either Xcode-4.3+ or pre-4.3 SDKs directory.
+  set(_CMAKE_OSX_SDKS_DIR "")
+  if(OSX_DEVELOPER_ROOT)
+    foreach(d Platforms/MacOSX.platform/Developer/SDKs SDKs)
+      file(GLOB _CMAKE_OSX_SDKS ${OSX_DEVELOPER_ROOT}/${d}/*)
+      if(_CMAKE_OSX_SDKS)
+        set(_CMAKE_OSX_SDKS_DIR ${OSX_DEVELOPER_ROOT}/${d})
+        break()
+      endif()
+    endforeach()
+  endif()
+
+  if(_CMAKE_OSX_SDKS_DIR)
+    # Select SDK for current OSX version accounting for the known
+    # 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}})
+      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."
+          )
+      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")
+    endif()
+  else()
+    # Assume developer files are in root (such as Xcode 4.5 command-line tools).
+    set(_CMAKE_OSX_SYSROOT_DEFAULT "")
+  endif()
+endif()
+
+# Set cache variable - end user may change this during ccmake or cmake-gui configure.
+# Choose the type based on the current value.
+set(_CMAKE_OSX_SYSROOT_TYPE STRING)
+foreach(v CMAKE_OSX_SYSROOT _CMAKE_OSX_SYSROOT_DEFAULT)
+  if("x${${v}}" MATCHES "/")
+    set(_CMAKE_OSX_SYSROOT_TYPE PATH)
+    break()
+  endif()
+endforeach()
+set(CMAKE_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_DEFAULT}" CACHE ${_CMAKE_OSX_SYSROOT_TYPE}
+  "The product will be built against the headers and libraries located inside the indicated SDK.")
+
+# Transform the cached value to something we can use.
+set(_CMAKE_OSX_SYSROOT_ORIG "${CMAKE_OSX_SYSROOT}")
+set(_CMAKE_OSX_SYSROOT_PATH "")
+if(CMAKE_OSX_SYSROOT)
+  if("x${CMAKE_OSX_SYSROOT}" MATCHES "/")
+    # This is a path to the SDK.  Make sure it exists.
+    if(NOT IS_DIRECTORY "${CMAKE_OSX_SYSROOT}")
+      message(WARNING "Ignoring CMAKE_OSX_SYSROOT value:\n ${CMAKE_OSX_SYSROOT}\n"
+        "because the directory does not exist.")
+      set(CMAKE_OSX_SYSROOT "")
+      set(_CMAKE_OSX_SYSROOT_ORIG "")
+    endif()
+    set(_CMAKE_OSX_SYSROOT_PATH "${CMAKE_OSX_SYSROOT}")
+  else()
+    # Transform the sdk name into a path.
+    execute_process(
+      COMMAND xcodebuild -sdk ${CMAKE_OSX_SYSROOT} -version Path
+      OUTPUT_VARIABLE _stdout
+      OUTPUT_STRIP_TRAILING_WHITESPACE
+      ERROR_VARIABLE _stderr
+      RESULT_VARIABLE _failed
+      )
+    if(NOT _failed AND IS_DIRECTORY "${_stdout}")
+      set(_CMAKE_OSX_SYSROOT_PATH "${_stdout}")
+      # For non-Xcode generators use the path.
+      if(NOT "${CMAKE_GENERATOR}" MATCHES "Xcode")
+        set(CMAKE_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_PATH}")
+      endif()
+    endif()
+  endif()
+endif()
diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake
index fc3f87e..81e8465 100644
--- a/Modules/Platform/Darwin.cmake
+++ b/Modules/Platform/Darwin.cmake
@@ -64,143 +64,6 @@ if(NOT DEFINED CMAKE_INSTALL_NAME_TOOL)
   mark_as_advanced(CMAKE_INSTALL_NAME_TOOL)
 endif()
 
-# Ask xcode-select where to find /Developer or fall back to ancient location.
-execute_process(COMMAND xcode-select -print-path
-  OUTPUT_VARIABLE _stdout
-  OUTPUT_STRIP_TRAILING_WHITESPACE
-  ERROR_VARIABLE _stderr
-  RESULT_VARIABLE _failed)
-if(NOT _failed AND IS_DIRECTORY ${_stdout})
-  set(OSX_DEVELOPER_ROOT ${_stdout})
-elseif(IS_DIRECTORY "/Developer")
-  set(OSX_DEVELOPER_ROOT "/Developer")
-else()
-  set(OSX_DEVELOPER_ROOT "")
-endif()
-
-execute_process(COMMAND sw_vers -productVersion
-  OUTPUT_VARIABLE CURRENT_OSX_VERSION
-  OUTPUT_STRIP_TRAILING_WHITESPACE)
-
-# Save CMAKE_OSX_ARCHITECTURES from the environment.
-set(CMAKE_OSX_ARCHITECTURES "$ENV{CMAKE_OSX_ARCHITECTURES}" CACHE STRING
-  "Build architectures for OSX")
-
-#----------------------------------------------------------------------------
-# _CURRENT_OSX_VERSION - as a two-component string: 10.5, 10.6, ...
-#
-string(REGEX REPLACE "^([0-9]+\\.[0-9]+).*$" "\\1"
-  _CURRENT_OSX_VERSION "${CURRENT_OSX_VERSION}")
-
-#----------------------------------------------------------------------------
-# CMAKE_OSX_DEPLOYMENT_TARGET
-
-# Set cache variable - end user may change this during ccmake or cmake-gui configure.
-if(_CURRENT_OSX_VERSION VERSION_GREATER 10.3)
-  set(CMAKE_OSX_DEPLOYMENT_TARGET "$ENV{MACOSX_DEPLOYMENT_TARGET}" CACHE STRING
-    "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value.")
-endif()
-
-#----------------------------------------------------------------------------
-# CMAKE_OSX_SYSROOT
-
-if(CMAKE_OSX_SYSROOT)
-  # Use the existing value without further computation to choose a default.
-  set(_CMAKE_OSX_SYSROOT_DEFAULT "${CMAKE_OSX_SYSROOT}")
-elseif(NOT "x$ENV{SDKROOT}" STREQUAL "x" AND
-        (NOT "x$ENV{SDKROOT}" MATCHES "/" OR IS_DIRECTORY "$ENV{SDKROOT}"))
-  # Use the value of SDKROOT from the environment.
-  set(_CMAKE_OSX_SYSROOT_DEFAULT "$ENV{SDKROOT}")
-elseif("${CMAKE_GENERATOR}" MATCHES Xcode
-       OR CMAKE_OSX_DEPLOYMENT_TARGET
-       OR CMAKE_OSX_ARCHITECTURES MATCHES "[^;]"
-       OR NOT EXISTS "/usr/include/sys/types.h")
-  # Find installed SDKs in either Xcode-4.3+ or pre-4.3 SDKs directory.
-  set(_CMAKE_OSX_SDKS_DIR "")
-  if(OSX_DEVELOPER_ROOT)
-    foreach(d Platforms/MacOSX.platform/Developer/SDKs SDKs)
-      file(GLOB _CMAKE_OSX_SDKS ${OSX_DEVELOPER_ROOT}/${d}/*)
-      if(_CMAKE_OSX_SDKS)
-        set(_CMAKE_OSX_SDKS_DIR ${OSX_DEVELOPER_ROOT}/${d})
-        break()
-      endif()
-    endforeach()
-  endif()
-
-  if(_CMAKE_OSX_SDKS_DIR)
-    # Select SDK for current OSX version accounting for the known
-    # 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}})
-      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."
-          )
-      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")
-    endif()
-  else()
-    # Assume developer files are in root (such as Xcode 4.5 command-line tools).
-    set(_CMAKE_OSX_SYSROOT_DEFAULT "")
-  endif()
-endif()
-
-# Set cache variable - end user may change this during ccmake or cmake-gui configure.
-# Choose the type based on the current value.
-set(_CMAKE_OSX_SYSROOT_TYPE STRING)
-foreach(v CMAKE_OSX_SYSROOT _CMAKE_OSX_SYSROOT_DEFAULT)
-  if("x${${v}}" MATCHES "/")
-    set(_CMAKE_OSX_SYSROOT_TYPE PATH)
-    break()
-  endif()
-endforeach()
-set(CMAKE_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_DEFAULT}" CACHE ${_CMAKE_OSX_SYSROOT_TYPE}
-  "The product will be built against the headers and libraries located inside the indicated SDK.")
-
-# Transform the cached value to something we can use.
-set(_CMAKE_OSX_SYSROOT_ORIG "${CMAKE_OSX_SYSROOT}")
-set(_CMAKE_OSX_SYSROOT_PATH "")
-if(CMAKE_OSX_SYSROOT)
-  if("x${CMAKE_OSX_SYSROOT}" MATCHES "/")
-    # This is a path to the SDK.  Make sure it exists.
-    if(NOT IS_DIRECTORY "${CMAKE_OSX_SYSROOT}")
-      message(WARNING "Ignoring CMAKE_OSX_SYSROOT value:\n ${CMAKE_OSX_SYSROOT}\n"
-        "because the directory does not exist.")
-      set(CMAKE_OSX_SYSROOT "")
-      set(_CMAKE_OSX_SYSROOT_ORIG "")
-    endif()
-    set(_CMAKE_OSX_SYSROOT_PATH "${CMAKE_OSX_SYSROOT}")
-  else()
-    # Transform the sdk name into a path.
-    execute_process(
-      COMMAND xcodebuild -sdk ${CMAKE_OSX_SYSROOT} -version Path
-      OUTPUT_VARIABLE _stdout
-      OUTPUT_STRIP_TRAILING_WHITESPACE
-      ERROR_VARIABLE _stderr
-      RESULT_VARIABLE _failed
-      )
-    if(NOT _failed AND IS_DIRECTORY "${_stdout}")
-      set(_CMAKE_OSX_SYSROOT_PATH "${_stdout}")
-      # For non-Xcode generators use the path.
-      if(NOT "${CMAKE_GENERATOR}" MATCHES "Xcode")
-        set(CMAKE_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_PATH}")
-      endif()
-    endif()
-  endif()
-endif()
-
 # Make sure the combination of SDK and Deployment Target are allowed
 if(CMAKE_OSX_DEPLOYMENT_TARGET)
   if("${_CMAKE_OSX_SYSROOT_PATH}" MATCHES "^.*/MacOSX([0-9]+\\.[0-9]+)[^/]*\\.sdk")

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=416761e35c828092bc8a7dbe68b3fbe65495f01e
commit 416761e35c828092bc8a7dbe68b3fbe65495f01e
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Apr 29 09:14:45 2014 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Apr 29 09:36:14 2014 -0400

    Add platform-specific initialization step when enabling languages
    
    Create a Modules/CMakeSystemSpecificInitialize.cmake module loaded after
    CMakeSystem.cmake but before per-language initialization.  Use it to
    load an optional Platform/<os>-Initialize.cmake module.  This will be
    useful to do per-platform initialization that does not depend on the
    language and use the results when enabling specific languages.

diff --git a/Modules/CMakeSystemSpecificInitialize.cmake b/Modules/CMakeSystemSpecificInitialize.cmake
new file mode 100644
index 0000000..5327ac1
--- /dev/null
+++ b/Modules/CMakeSystemSpecificInitialize.cmake
@@ -0,0 +1,20 @@
+
+#=============================================================================
+# Copyright 2002-2014 Kitware, Inc.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+# This file is included by cmGlobalGenerator::EnableLanguage.
+# It is included before the compiler has been determined.
+
+include(Platform/${CMAKE_SYSTEM_NAME}-Initialize OPTIONAL)
+
+set(CMAKE_SYSTEM_SPECIFIC_INITIALIZE_LOADED 1)
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index beb10da..f933f27 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -308,6 +308,9 @@ void cmGlobalGenerator::FindMakeProgram(cmMakefile* mf)
 //   CMakeSystem.cmake - configured file created by
 //                       CMakeDetermineSystem.cmake IF CMAKE_SYSTEM_LOADED
 
+// CMakeSystemSpecificInitialize.cmake
+//   - includes Platform/${CMAKE_SYSTEM_NAME}-Initialize.cmake
+
 // Next try and enable all languages found in the languages vector
 //
 // FOREACH LANG in languages
@@ -432,6 +435,18 @@ cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages,
     fpath += "/CMakeSystem.cmake";
     mf->ReadListFile(0,fpath.c_str());
     }
+
+  // **** Load the system specific initialization if not yet loaded
+  if (!mf->GetDefinition("CMAKE_SYSTEM_SPECIFIC_INITIALIZE_LOADED"))
+    {
+    fpath = mf->GetModulesFile("CMakeSystemSpecificInitialize.cmake");
+    if(!mf->ReadListFile(0,fpath.c_str()))
+      {
+      cmSystemTools::Error("Could not find cmake module file: ",
+                           fpath.c_str());
+      }
+    }
+
   std::map<cmStdString, bool> needTestLanguage;
   std::map<cmStdString, bool> needSetLanguageEnabledMaps;
   // foreach language

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

Summary of changes:
 Modules/CMakeDetermineCompilerId.cmake             |   11 ++
 ...e.cmake => CMakeSystemSpecificInitialize.cmake} |   10 +-
 Modules/CompilerId/Xcode-3.pbxproj.in              |    2 +
 Modules/Platform/Darwin-Initialize.cmake           |  136 +++++++++++++++++++
 Modules/Platform/Darwin.cmake                      |  137 --------------------
 Source/cmGlobalGenerator.cxx                       |   15 +++
 6 files changed, 170 insertions(+), 141 deletions(-)
 copy Modules/{CMakeJOMFindMake.cmake => CMakeSystemSpecificInitialize.cmake} (68%)
 create mode 100644 Modules/Platform/Darwin-Initialize.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list