I'm using CMake to generate a project file for Xcode 4.2 on OSX Lion, and I'm using some of the C++0x features in LLVM like nullptr and auto. In order to use these, Xcode requires that 2 project settings be set:
C++ Language Dialect set to C++0x [-std=C++0x]
C++ Standard Library set to libc++ (LLVM C++ standard library with C++'0X support)
Currently every time I generate an Xcode project, I have to go in and manually adjust these settings.
Is there a way to specify these settings in CMake?
Thanks
after digging into this for a little, these are the commands to set the appropriate xcode settings:
set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++0x")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -stdlib=libc++ -g -Wall")
I think setting the c++ flags is redundant, so it might also work without the last line.
hope that helps!
The first one you could change the CMAKE_CXX_FLAGS attribute and add it:
SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -std=C++0x")
As for selecting GCC instead of Clang you'll have to use something like:
Switching between GCC and Clang/LLVM using CMake
That will override the CLang default values to use GCC