[cmake-developers] -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING="" -DCMAKE_OSX_SYSROOT:STRING=/ broken in 3.7.0-rc2

Jack Howarth howarth.mailing.lists at gmail.com
Sun Oct 30 13:33:01 EDT 2016


Gregor,
      Your commit of...

https://cmake.org/gitweb?p=cmake.git;a=log;h=540815eec2b83a8b43689580c54e8950d9f5868b

has caused a major regression in cmake 3.7.0 as it no longer properly
honors the combination...

-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING="" -DCMAKE_OSX_SYSROOT:STRING=/

This is obvious by simple inspection of the code in
Modules/Platform/Darwin-Initialize.cmake as
the code no longer honors  -DCMAKE_OSX_SYSROOT:STRING=/. At the very
least, this code
needs to be modified to have cmake emit "-isysroot /" in that case.
       IMHO, this issue should be considered a blocker for the cmake
3,7.0 release on darwin.
                      Jack


On Sun, Oct 30, 2016 at 9:36 AM, Jack Howarth
<howarth.mailing.lists at gmail.com> wrote:
> The change...
>
> --- cmake-3.6.2/Modules/Platform/Darwin-Initialize.cmake 2016-09-07
> 10:11:58.000000000 -0400
> +++ cmake-3.7.0-rc2/Modules/Platform/Darwin-Initialize.cmake
> 2016-10-19 09:47:45.000000000 -0400
> @@ -125,8 +125,10 @@
>        set(_CMAKE_OSX_SYSROOT_ORIG "")
>      endif()
>      set(_CMAKE_OSX_SYSROOT_PATH "${CMAKE_OSX_SYSROOT}")
> -  else()
> -    # Transform the sdk name into a path.
> +  endif()
> +
> +  if(CMAKE_OSX_SYSROOT)
> +    # Transform the (maybe unversioned) sysroot into a versioned path.
>      execute_process(
>        COMMAND xcodebuild -sdk ${CMAKE_OSX_SYSROOT} -version Path
>        OUTPUT_VARIABLE _stdout
>
> is an obvious mistake in cmake 3.7.0-rc2. The removal of the 'else()'
> statement here and the substitution of the ' if(CMAKE_OSX_SYSROOT)'
> defeats the prior handling of 'if("x${CMAKE_OSX_SYSROOT}" MATCHES
> "/")'. This causes '-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=""
> -DCMAKE_OSX_SYSROOT:STRING=/' to not be honored and -isysroot to be
> emitted as a compiler flag universally.
>
> https://gitlab.kitware.com/cmake/cmake/issues/16394


More information about the cmake-developers mailing list