2013-11-27 4 views
8

Как добавить флаг компилятора (я хочу добавить его, а не переписывать остальные) в единую единицу перевода с cmake?Добавление флагов компилятора в файл с CMake

Я попытался с

set_source_files_properties(MyFile.cpp PROPERTIES CMAKE_CXX_FLAGS "-msse4.1") 

, но он не работает .. никаких советов о том, как сделать это?

ответ

15

Правильное свойство для установки флагов исходного файла имеет имя COMPILE_FLAGS. Поскольку это свойство строки, правильный способ добавить дополнительные опции, чтобы использовать APPEND_STRING вариант команды set_property:

set_property(SOURCE MyFile.cpp APPEND_STRING PROPERTY COMPILE_FLAGS " -msse4.1 ") 

Опция APPEND_STRING доступна только с CMake 2.8.6 или более поздней версии.

2

Попробуйте это:

set_property(SOURCE MyFile.cpp APPEND PROPERTY CMAKE_CXX_FLAGS "-msse4.1") 

Кстати, несколько свойств являются всегда добавляются, например, COMPILE_FLAGS. Для тех, кто вам не нужно делать ничего особенного, просто установить их, и они получают прилагается :)

3

Вы почти там, это должно работать:

set_property(SOURCE MyFile.cpp APPEND PROPERTY CMAKE_CXX_FLAGS -msse4.1) 

Добрые специфичные хелперы (как set_source_files_properties()) могут быть удобными время от времени, но они имеют очень симулированный интерфейс. Для нетривиальных вещей вам нужно использовать set_property(). Я обнаружил, что на самом деле я редко использую помощников.

Смежные вопросы