Использование C ++ 0x в проекте Xcode 4.2 через CMake - PullRequest
17 голосов
/ 24 октября 2011

Я использую CMake для генерации файла проекта для Xcode 4.2 на OSX Lion, и я использую некоторые функции C ++ 0x в LLVM, такие как nullptr и auto. Чтобы использовать их, XCode требует, чтобы были установлены 2 настройки проекта:

C ++ Language Dialect установлен на C ++ 0x [-std = C ++ 0x]

Стандартная библиотека C ++ установлена ​​в libc ++ (стандартная библиотека LLVM C ++ с поддержкой C ++ '0X) ​​

В настоящее время каждый раз, когда я генерирую проект XCode, я должен войти и вручную отрегулировать эти настройки.

Есть ли способ указать эти настройки в CMake?

Спасибо

Ответы [ 2 ]

23 голосов
/ 21 ноября 2011

после небольшого углубления в это, это команды для установки соответствующих настроек 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")

Я думаю, что установка флагов c ++ является избыточной, поэтому она может также работать без последней строки.

надеюсь, это поможет!

1 голос
/ 11 ноября 2011

Первым вы можете изменить атрибут CMAKE_CXX_FLAGS и добавить его: SET (CMAKE_CXX_FLAGS "$ {CMAKE_C_FLAGS} -std = C ++ 0x")

Что касается выбора GCC вместо Clang, вам нужно использовать что-то вроде: Переключение между GCC и Clang / LLVM с использованием CMake

Это переопределит значения по умолчанию CLang для использования GCC

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...