[Cmake-commits] [cmake-commits] david.cole committed Darwin.cmake 1.63 1.64

cmake-commits at cmake.org cmake-commits at cmake.org
Wed Dec 23 12:08:27 EST 2009


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

Modified Files:
	Darwin.cmake 
Log Message:
Fix issue with SDK not matching initial deployment target chosen by setting the MACOSX_DEPLOYMENT_TARGET environment variable. The problem was that we were setting the initial SDK value based on our own internal default value for deplyment target rather than the user's environment variable choice. The solution is to base the default value for the SDK on the deployment target variable after initially caching the deployment target... Every time I'm in this code I think I leave it cleaner, only to be proven otherwise. Let's give this one a whirl. Bleh.


Index: Darwin.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/Platform/Darwin.cmake,v
retrieving revision 1.63
retrieving revision 1.64
diff -C 2 -d -r1.63 -r1.64
*** Darwin.cmake	15 Dec 2009 16:10:15 -0000	1.63
--- Darwin.cmake	23 Dec 2009 17:08:25 -0000	1.64
***************
*** 78,85 ****
    OUTPUT_STRIP_TRAILING_WHITESPACE)
  
  # 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 "")
--- 78,91 ----
    OUTPUT_STRIP_TRAILING_WHITESPACE)
  
+ #----------------------------------------------------------------------------
+ # 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 "")
***************
*** 89,123 ****
  ENDIF(CMAKE_OSX_SYSROOT)
  
! # Set CMAKE_OSX_SYSROOT_DEFAULT based on CMAKE_OSX_DEPLOYMENT_TARGET_DEFAULT.
! # This next block assumes that Apple will start being consistent with
! # its SDK names from here on out...
! IF(CMAKE_OSX_DEPLOYMENT_TARGET_DEFAULT GREATER "10.4")
!   SET(CMAKE_OSX_SYSROOT_DEFAULT
!     "${OSX_DEVELOPER_ROOT}/SDKs/MacOSX${CMAKE_OSX_DEPLOYMENT_TARGET_DEFAULT}.sdk")
! ENDIF(CMAKE_OSX_DEPLOYMENT_TARGET_DEFAULT GREATER "10.4")
  
! IF(CMAKE_OSX_DEPLOYMENT_TARGET_DEFAULT EQUAL "10.4")
    SET(CMAKE_OSX_SYSROOT_DEFAULT
      "${OSX_DEVELOPER_ROOT}/SDKs/MacOSX10.4u.sdk")
! ENDIF(CMAKE_OSX_DEPLOYMENT_TARGET_DEFAULT EQUAL "10.4")
  
! IF(CMAKE_OSX_DEPLOYMENT_TARGET_DEFAULT EQUAL "10.3")
    SET(CMAKE_OSX_SYSROOT_DEFAULT
      "${OSX_DEVELOPER_ROOT}/SDKs/MacOSX10.3.9.sdk")
! ENDIF(CMAKE_OSX_DEPLOYMENT_TARGET_DEFAULT EQUAL "10.3")
! 
! # Allow environment variables set by the user to override our defaults.
! # Use the same environment variables that Xcode uses.
! SET(ENV_MACOSX_DEPLOYMENT_TARGET "$ENV{MACOSX_DEPLOYMENT_TARGET}")
! SET(ENV_SDKROOT "$ENV{SDKROOT}")
! 
! # See if we need to override the default SDK or Deployment target with the
! # environment variables
! 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 "")
  
  IF(NOT ENV_SDKROOT STREQUAL "")
    SET(CMAKE_OSX_SYSROOT_VALUE ${ENV_SDKROOT})
--- 95,134 ----
  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)
! 
! #----------------------------------------------------------------------------
! # CMAKE_OSX_SYSROOT
! 
! # Environment variable set by the user overrides our default.
! # Use the same environment variable that Xcode uses.
! 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:
  IF(NOT ENV_SDKROOT STREQUAL "")
    SET(CMAKE_OSX_SYSROOT_VALUE ${ENV_SDKROOT})
***************
*** 126,135 ****
  ENDIF(NOT ENV_SDKROOT STREQUAL "")
  
! # Set cache variables - end user may change these 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)
! 
  SET(CMAKE_OSX_SYSROOT ${CMAKE_OSX_SYSROOT_VALUE} CACHE PATH
    "The product will be built against the headers and libraries located inside the indicated SDK.")
--- 137,141 ----
  ENDIF(NOT ENV_SDKROOT STREQUAL "")
  
! # Set cache variable - end user may change this during ccmake or cmake-gui configure.
  SET(CMAKE_OSX_SYSROOT ${CMAKE_OSX_SYSROOT_VALUE} CACHE PATH
    "The product will be built against the headers and libraries located inside the indicated SDK.")



More information about the Cmake-commits mailing list