2011-10-24 12 views
17

Używam CMake do generowania pliku projektu dla Xcode 4.2 na OSX Lion i używam niektórych funkcji C++ 0x w LLVM takich jak nullptr i auto . W celu korzystania z nich, Xcode wymaga, aby ustawić ustawienia 2 projektu:Używanie C++ 0x w projekcie Xcode 4.2 za pomocą CMake

C++ Język Dialekt ustawiony na C++ 0x [-std = C++ 0x]

C++ Standardowa biblioteka ustawiony na libC++ (LLVM C++ standardowa biblioteka z obsługą C++ 0X)

Obecnie za każdym razem, gdy generuję projekt Xcode, muszę wejść i ręcznie dostosować te ustawienia.

Czy istnieje sposób na określenie tych ustawień w CMake?

Dzięki

+0

Witam, czy znalazłeś rozwiązanie tego problemu? bez względu na to, jaki kompilator podam dla Cmake, projekt xcode 4.2 zawsze wybiera domyślny kompilator. – moka

Odpowiedz

23

po wykopaniu w tym przez littl e są to polecenia, aby ustawić odpowiednie ustawienia 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") 

myślę ustawienie flagi C++ jest zbędna, więc może również pracować bez ostatniej linii.

nadzieję, że pomoże!

+1

Kompilator nie został odebrany dla mnie. Nadal używa domyślnego "C++" –

+2

Czy naprawdę miałeś na myśli 'CMAKE_C_FLAGS' przy czwartym poleceniu' set'? – McLeary

+0

nie, dziękuję za naprawę :) – moka

1

Pierwszy z nich można zmienić atrybut CMAKE_CXX_FLAGS i dodać go: SET (CMAKE_CXX_FLAGS "$ {CMAKE_C_FLAGS} -std = C++ 0x")

chodzi o wybranie zamiast GCC dzyń będziesz musiał użyć czegoś takiego: Switching between GCC and Clang/LLVM using CMake

to zastąpi wartości domyślne dzyń użyć GCC