[Cmake-commits] [cmake-commits] david.cole committed Darwin-GNU-C.cmake 1.2 1.3 Darwin-GNU-CXX.cmake 1.2 1.3 Darwin-GNU.cmake 1.2 1.3 Darwin.cmake 1.64 1.65

cmake-commits at cmake.org cmake-commits at cmake.org
Fri Jan 29 11:56:38 EST 2010


Update of /cvsroot/CMake/CMake/Modules/Platform
In directory public:/mounts/ram/cvs-serv29849/Modules/Platform

Modified Files:
	Darwin-GNU-C.cmake Darwin-GNU-CXX.cmake Darwin-GNU.cmake 
	Darwin.cmake 
Log Message:
Fix issue #10155 - default value of CMAKE_OSX_DEPLOYMENT_TARGET should always be the empty string. When the value of CMAKE_OSX_DEPLOYMENT_TARGET is the empty string, the -mmacosx-version-min flag should not show up on the compiler command line. The logic for selecting default value of CMAKE_OSX_SYSROOT is orthogonal to and independent of the value of the deployment target. The default value for CMAKE_OSX_SYSROOT is the SDK that corresponds to the current version of Mac OSX on which cmake is running.


Index: Darwin-GNU.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/Platform/Darwin-GNU.cmake,v
retrieving revision 1.2
retrieving revision 1.3
diff -C 2 -d -r1.2 -r1.3
*** Darwin-GNU.cmake	2 Dec 2009 20:09:03 -0000	1.2
--- Darwin-GNU.cmake	29 Jan 2010 16:56:33 -0000	1.3
***************
*** 43,44 ****
--- 43,64 ----
    endif()
  endmacro()
+ 
+ macro(cmake_gnu_set_osx_deployment_target_flag lang)
+   if(NOT DEFINED CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG)
+     set(_doc "${lang} compiler supports OSX deployment target flag")
+     message(STATUS "Checking whether ${_doc}")
+     execute_process(
+       COMMAND ${CMAKE_${lang}_COMPILER} "-v" "--help"
+       OUTPUT_VARIABLE _gcc_help
+       ERROR_VARIABLE _gcc_help
+       )
+     if("${_gcc_help}" MATCHES "macosx-version-min")
+       message(STATUS "Checking whether ${_doc} - yes")
+       set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG "-mmacosx-version-min=")
+     else()
+       message(STATUS "Checking whether ${_doc} - no")
+       set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG "")
+     endif()
+     set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG_CODE "SET(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG \"${CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG}\")")
+   endif()
+ endmacro()

Index: Darwin.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/Platform/Darwin.cmake,v
retrieving revision 1.64
retrieving revision 1.65
diff -C 2 -d -r1.64 -r1.65
*** Darwin.cmake	23 Dec 2009 17:08:25 -0000	1.64
--- Darwin.cmake	29 Jan 2010 16:56:35 -0000	1.65
***************
*** 79,110 ****
  
  #----------------------------------------------------------------------------
! # CMAKE_OSX_DEPLOYMENT_TARGET
! 
! # Environment variable set by the user overrides our default.
! # Use the same environment variable that Xcode uses.
! SET(ENV_MACOSX_DEPLOYMENT_TARGET "$ENV{MACOSX_DEPLOYMENT_TARGET}")
! 
! # Set CMAKE_OSX_DEPLOYMENT_TARGET_DEFAULT - if user has already specified an SDK
! # with CMAKE_OSX_SYSROOT, then deployment target should default to "", otherwise,
! # default it to the current OSX version.
! IF(CMAKE_OSX_SYSROOT)
!   SET(CMAKE_OSX_DEPLOYMENT_TARGET_DEFAULT "")
! ELSE(CMAKE_OSX_SYSROOT)
!   STRING(REGEX REPLACE "^.*(10)\\.([0-9]+)\\.*([0-9]+)*.*$" "\\1.\\2"
!     CMAKE_OSX_DEPLOYMENT_TARGET_DEFAULT ${CURRENT_OSX_VERSION})
! ENDIF(CMAKE_OSX_SYSROOT)
  
! # Use environment or default as initial cache value:
! IF(NOT ENV_MACOSX_DEPLOYMENT_TARGET STREQUAL "")
!   SET(CMAKE_OSX_DEPLOYMENT_TARGET_VALUE ${ENV_MACOSX_DEPLOYMENT_TARGET})
! ELSE(NOT ENV_MACOSX_DEPLOYMENT_TARGET STREQUAL "")
!   SET(CMAKE_OSX_DEPLOYMENT_TARGET_VALUE ${CMAKE_OSX_DEPLOYMENT_TARGET_DEFAULT})
! ENDIF(NOT ENV_MACOSX_DEPLOYMENT_TARGET STREQUAL "")
  
  # Set cache variable - end user may change this during ccmake or cmake-gui configure.
! IF(CURRENT_OSX_VERSION GREATER 10.3)
!   SET(CMAKE_OSX_DEPLOYMENT_TARGET ${CMAKE_OSX_DEPLOYMENT_TARGET_VALUE} CACHE STRING
      "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value.")
! ENDIF(CURRENT_OSX_VERSION GREATER 10.3)
  
  #----------------------------------------------------------------------------
--- 79,95 ----
  
  #----------------------------------------------------------------------------
! # _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(_CURRENT_OSX_VERSION VERSION_GREATER 10.3)
  
  #----------------------------------------------------------------------------
***************
*** 115,132 ****
  SET(ENV_SDKROOT "$ENV{SDKROOT}")
  
! # Set CMAKE_OSX_SYSROOT_DEFAULT based on CMAKE_OSX_DEPLOYMENT_TARGET,
  # accounting for the known specially named SDKs.
  SET(CMAKE_OSX_SYSROOT_DEFAULT
!   "${OSX_DEVELOPER_ROOT}/SDKs/MacOSX${CMAKE_OSX_DEPLOYMENT_TARGET}.sdk")
  
! IF(CMAKE_OSX_DEPLOYMENT_TARGET EQUAL "10.4")
    SET(CMAKE_OSX_SYSROOT_DEFAULT
      "${OSX_DEVELOPER_ROOT}/SDKs/MacOSX10.4u.sdk")
! ENDIF(CMAKE_OSX_DEPLOYMENT_TARGET EQUAL "10.4")
  
! IF(CMAKE_OSX_DEPLOYMENT_TARGET EQUAL "10.3")
    SET(CMAKE_OSX_SYSROOT_DEFAULT
      "${OSX_DEVELOPER_ROOT}/SDKs/MacOSX10.3.9.sdk")
! ENDIF(CMAKE_OSX_DEPLOYMENT_TARGET EQUAL "10.3")
  
  # Use environment or default as initial cache value:
--- 100,117 ----
  SET(ENV_SDKROOT "$ENV{SDKROOT}")
  
! # Set CMAKE_OSX_SYSROOT_DEFAULT based on _CURRENT_OSX_VERSION,
  # accounting for the known specially named SDKs.
  SET(CMAKE_OSX_SYSROOT_DEFAULT
!   "${OSX_DEVELOPER_ROOT}/SDKs/MacOSX${_CURRENT_OSX_VERSION}.sdk")
  
! IF(_CURRENT_OSX_VERSION STREQUAL "10.4")
    SET(CMAKE_OSX_SYSROOT_DEFAULT
      "${OSX_DEVELOPER_ROOT}/SDKs/MacOSX10.4u.sdk")
! ENDIF(_CURRENT_OSX_VERSION STREQUAL "10.4")
  
! IF(_CURRENT_OSX_VERSION STREQUAL "10.3")
    SET(CMAKE_OSX_SYSROOT_DEFAULT
      "${OSX_DEVELOPER_ROOT}/SDKs/MacOSX10.3.9.sdk")
! ENDIF(_CURRENT_OSX_VERSION STREQUAL "10.3")
  
  # Use environment or default as initial cache value:
***************
*** 153,157 ****
    string(REGEX REPLACE "(.*MacOSX*)(....)(.*\\.sdk)" "\\2" SDK "${_sdk_path}")
    if(_deploy GREATER "${SDK}")
!     message(FATAL_ERROR "CMAKE_OSX_DEPLOYMENT_TARGET (${_deploy}) is greater than CMAKE_OSX_SYSROOT SDK (${_sdk_path}). Please set CMAKE_OSX_DEPLOYMENT_TARGET to ${SDK}")
    endif()
  endfunction(SanityCheckSDKAndDeployTarget)
--- 138,142 ----
    string(REGEX REPLACE "(.*MacOSX*)(....)(.*\\.sdk)" "\\2" SDK "${_sdk_path}")
    if(_deploy GREATER "${SDK}")
!     message(FATAL_ERROR "CMAKE_OSX_DEPLOYMENT_TARGET (${_deploy}) is greater than CMAKE_OSX_SYSROOT SDK (${_sdk_path}). Please set CMAKE_OSX_DEPLOYMENT_TARGET to ${SDK} or lower")
    endif()
  endfunction(SanityCheckSDKAndDeployTarget)

Index: Darwin-GNU-C.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/Platform/Darwin-GNU-C.cmake,v
retrieving revision 1.2
retrieving revision 1.3
diff -C 2 -d -r1.2 -r1.3
*** Darwin-GNU-C.cmake	2 Dec 2009 20:09:03 -0000	1.2
--- Darwin-GNU-C.cmake	29 Jan 2010 16:56:32 -0000	1.3
***************
*** 2,3 ****
--- 2,4 ----
  __darwin_compiler_gnu(C)
  cmake_gnu_has_isysroot(C)
+ cmake_gnu_set_osx_deployment_target_flag(C)

Index: Darwin-GNU-CXX.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/Platform/Darwin-GNU-CXX.cmake,v
retrieving revision 1.2
retrieving revision 1.3
diff -C 2 -d -r1.2 -r1.3
*** Darwin-GNU-CXX.cmake	2 Dec 2009 20:09:03 -0000	1.2
--- Darwin-GNU-CXX.cmake	29 Jan 2010 16:56:33 -0000	1.3
***************
*** 2,3 ****
--- 2,4 ----
  __darwin_compiler_gnu(CXX)
  cmake_gnu_has_isysroot(CXX)
+ cmake_gnu_set_osx_deployment_target_flag(CXX)



More information about the Cmake-commits mailing list