[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