简体   繁体   中英

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM