[CMake] cache behavior of CMAKE_OSX_SYSROOT and CMAKE_OSX_DEPLOYMENT_TARGET variables
Matthew LeRoy
MLeRoy at minitab.com
Thu Dec 20 14:56:38 EST 2012
Ahh, well then. I guess that makes sense, heh.
Currently the if(APPLE)... code is after the project() command, but I could certainly move it to before. I would prefer to specify these settings in my CMakeLists file, and not have to specify them manually at cmake-time. That seems like a perfectly reasonable thing to do... what's the reasoning for having to specify your target SDK manually every time you generate?
Thanks,
Matt
On Thu, Dec 20, 2012 at 2:43 PM, David Cole <david.cole at kitware.com> wrote:
Because you're not using the CACHE keyword with your set calls. And if the cache is initialized before your call, then you won't override it even if you do use the CACHE keyword.
Where is your "if(APPLE)" code? If it's after the first project command, then you should be specifying these things in the cmake-gui or ccmake UI, or by passing -D args on the cmake command line. They shouldn't be hard-coded in your CMakeLists file.
HTH,
David
On Thu, Dec 20, 2012 at 2:25 PM, Matthew LeRoy <MLeRoy at minitab.com> wrote:
Hi,
Lately I've been attempting to use the CMAKE_OSX_DEPLOYMENT_TARGET and CMAKE_OSX_SYSROOT
variables to set the corresponding properties on the generated Xcode project, and I'm
trying to understand how these variables behave with respect to the CMake cache. I'm using
CMake 2.8.10.2.
I'm doing the following in my top-level CMakeLists.txt:
if(APPLE)
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.7)
set(CMAKE_OSX_SYSROOT macosx10.8)
endif()
Upon generating with 'cmake -G Xcode ..' and looking in the cache for these variables with
'cat CMakeCache.txt | grep OSX', I see this:
CMAKE_OSX_ARCHITECTURES:STRING=
CMAKE_OSX_DEPLOYMENT_TARGET:STRING=
CMAKE_OSX_SYSROOT:PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
Initially I thought something was broken because neither of the two variables I set in my
script are cached with the values I supplied. Once I open the generated Xcode project in
Xcode, though, I see that the corresponding settings are indeed correct; Deployment target
is set to 10.7 and Base SDK is set to 10.8.
So, why isn't the cache showing the values that I set in my script, and which are showing
correctly in the generated Xcode project?
--
Powered by www.kitware.com
Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake
More information about the CMake
mailing list