Использование С++ 0x в проекте Xcode 4.2 через CMake
Я использую CMake для создания файла проекта для Xcode 4.2 на OSX Lion, и я использую некоторые функции С++ 0x в LLVM, такие как nullptr и auto. Чтобы использовать их, Xcode требует, чтобы были установлены две настройки проекта:
Языковой диалект С++ установлен на С++ 0x [-std = С++ 0x]
Стандартная библиотека С++ установлена в libС++ (стандартная библиотека LLVM С++ с поддержкой С++ '0X)
В настоящее время каждый раз, когда я создаю проект Xcode, мне нужно войти и вручную настроить эти параметры.
Есть ли способ указать эти настройки в CMake?
Спасибо
Ответы
Ответ 1
после небольшого перекопа в этом, это команды для установки соответствующих настроек 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")
Я думаю, что установка флагов С++ избыточна, поэтому она также может работать без последней строки.
надеюсь, что это поможет!
Ответ 2
Первым вы можете изменить атрибут CMAKE_CXX_FLAGS и добавить его: SET (CMAKE_CXX_FLAGS "$ {CMAKE_C_FLAGS} -std = С++ 0x" )
Что касается выбора GCC вместо Clang, вам нужно будет использовать что-то вроде:
Переключение между GCC и Clang/LLVM с помощью CMake
Это приведет к переопределению значений по умолчанию CLang для использования GCC