Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using C++0x in Xcode 4.2 project via CMake

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

like image 984
Gerald Avatar asked Oct 24 '11 17:10

Gerald


2 Answers

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!

like image 196
moka Avatar answered Sep 28 '22 10:09

moka


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

like image 38
scooterman Avatar answered Sep 28 '22 09:09

scooterman