2011-10-24 8 views
17

Estoy usando CMake para generar un archivo de proyecto para Xcode 4.2 en OSX Lion, y estoy usando algunas de las características de C++ 0x en LLVM como nullptr y auto . Para utilizar estos, Xcode necesita que se establezcan ajustes 2 proyectos:Usando C++ 0x en el proyecto Xcode 4.2 a través de CMake

del lenguaje C++ dialecto establecido en C++ 0x [-std = C++ 0x]

C++ biblioteca estándar establecido a libC++ (LLVM C++ biblioteca estándar con compatibilidad C++ '0X) ​​

Actualmente cada vez que genero un proyecto Xcode, tengo que entrar y ajustar manualmente estas configuraciones.

¿Hay alguna manera de especificar estas configuraciones en CMake?

Gracias

+0

hola, ¿ha encontrado una solución a esto? no importa qué compilador especifique para Cmake, el proyecto xcode 4.2 siempre elige el compilador predeterminado. – moka

Respuesta

23

después de cavar en esto por un peq E, estos son los comandos para configurar los ajustes apropiados Xcode:

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") 

Creo que el establecimiento de las banderas C++ es redundante, por lo que también podría funcionar sin la última línea.

Espero que ayude!

+1

El compilador no fue recogido por mí. Todavía usa el "C++" predeterminado –

+2

¿Realmente quiso decir 'CMAKE_C_FLAGS' en el cuarto comando' set'? – McLeary

+0

no, gracias por arreglar :) – moka

1

La primera de ellas se podía cambiar el atributo CMAKE_CXX_FLAGS y añadirlo: SET (CMAKE_CXX_FLAGS "$ {} CMAKE_C_FLAGS -std = C++ 0x")

En cuanto a la selección de GCC en lugar de sonido metálico que tendrá que usar algo como: Switching between GCC and Clang/LLVM using CMake

que anularán los valores por defecto cLANG usar GCC

Cuestiones relacionadas