Добавление флагов компилятора в файл с CMake
Как добавить флаг компилятора (я хочу добавить его, а не переписывать остальные) в единую единицу перевода с cmake?
Я пробовал с помощью
set_source_files_properties(MyFile.cpp PROPERTIES CMAKE_CXX_FLAGS "-msse4.1")
но он не работает.. какие-либо советы о том, как это сделать?
Ответы
Ответ 1
Для CMake 3.0 или более поздней версии используйте свойство COMPILE_OPTIONS, чтобы добавить флаг в одну единицу перевода, т.е.
set_property(SOURCE MyFile.cpp APPEND PROPERTY COMPILE_FLAGS "-msse4.1")
Для более ранних версий CMake используйте свойство COMPILE_FLAGS. COMPILE_FLAGS
- это строковое свойство. Поэтому правильный способ добавить дополнительные опции к нему, чтобы использовать APPEND_STRING
вариант set_property команды:
set_property(SOURCE MyFile.cpp APPEND_STRING PROPERTY COMPILE_FLAGS " -msse4.1 ")
Ответ 2
Вы почти там, это должно работать:
set_property(SOURCE MyFile.cpp APPEND PROPERTY CMAKE_CXX_FLAGS -msse4.1)
Помощники рода (например, set_source_files_properties()
) могут быть удобны время от времени, но у них очень симулированный интерфейс. Для нетривиальных вещей вы должны использовать set_property()
. Я обнаружил, что на самом деле я редко использую помощники.
Ответ 3
Попробуйте следующее:
set_property(SOURCE MyFile.cpp APPEND PROPERTY CMAKE_CXX_FLAGS "-msse4.1")
Кстати, несколько свойств всегда добавляются, например, COMPILE_FLAGS. Для тех, кому вам не нужно ничего особенного, просто установите их и добавьте их:)