[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