[CMake] CMAKE_OSX_DEPLOYMENT_TARGET vs CMAKE_OSX_SYSROOT

Gregor Jasny gjasny at googlemail.com
Fri Sep 23 16:35:15 EDT 2016


On 21/09/2016 10:54, James Turner wrote:
> 
>> On 20 Sep 2016, at 16:00, Braden McDaniel <braden at endoframe.com> wrote:
>>
>> When setting CMAKE_OSX_SYSROOT to the unversioned directory name (using Xcode 8, as it happens) and setting CMAKE_OSX_DEPLOYMENT_TARGET, I get this error:
>>
>>
>> -- The CXX compiler identification is AppleClang 8.0.0.8000038
>> CMake Error at /Applications/CMake.app/Contents/share/cmake-3.6/Modules/Platform/Darwin.cmake:76 (message):
>> CMAKE_OSX_DEPLOYMENT_TARGET is '10.10' but CMAKE_OSX_SYSROOT:
>>
>> "/Applications/Xcode-8.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk"
>>
>> is not set to a MacOSX SDK with a recognized version. Either set
>> CMAKE_OSX_SYSROOT to a valid SDK or set CMAKE_OSX_DEPLOYMENT_TARGET to
>> empty.
>> Call Stack (most recent call first):
>> /Applications/CMake.app/Contents/share/cmake-3.6/Modules/CMakeSystemSpecificInformation.cmake:36 (include)
>> CMakeLists.txt:37 (project)
>>
>>
>> I'm able to suppress the error by using the versioned (symlink) directory; but isn't the premise of this error message invalid? As I understand it, since Xcode 7 (or perhaps earlier?), there is no requirement that the deployment target match the SDK version.
> 
> I’m seeing a similar error when setting CMAKE_OSX_DEPLOYMENT_TARGET to 10.7 with XCode 8, and leaving CMAKE_OSX_SYSROOT unset. I’m couldn’t identify where (from  Modules/Platform/Darwin.cmake) the detected value of _CMAKE_OSX_SYSROOT is computed. (I don’t wish to explicitly set it)

Could you please file a bug report and CC me? I'll try to submit a patch
next week but would appreciate a reminder :)

In my projects and toolchain files I always used xcrun to query for the
SDK path:

$ xcrun --sdk macosx --show-sdk-path
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk

The xcrun approach has the advantage that it respects the DEVELOPER_DIR
environment variable and thus works with different Xcode installations.

Thanks,
Gregor



More information about the CMake mailing list