2010-02-24 2 views
4

Я пытаюсь перекомпилировать файл заголовка в GCC с помощью следующей команды:CMake скомпилировать файл C++ в пользовательской команде

ADD_CUSTOM_COMMAND(
    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/all.hpp.gch 
    COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_FLAGS} -o ${CMAKE_BINARY_DIR}/all.hpp.gch ${CMAKE_CURRENT_SOURCE_DIR}/all.hpp 
    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/all.hpp 
    COMMENT "Generating precompiled headers" 
    ) 

Однако, я не получаю CMAKE_CXX_FLAGS расширяться в флагах я установить с помощью Add_definitions от CMake(). Каков правильный способ компиляции в add_custom_command()?

ответ

1

Я не считаю, что add_definitions() добавляет свои аргументы в CMAKE_CXX_FLAGS. На самом деле, насколько я могу судить, они нигде не сохраняются (кроме аргументов, начинающихся с -D или /D, которые добавляются к COMPILE_DEFINITIONS).

Самый простой способ решить это при вызове add_definitions(), чтобы вручную добавить эти флаги в CMAKE_CXX_FLAGS.

Чтобы увидеть, что находится в CMAKE_CXX_FLAGS в любой момент, вы можете сделать

message(STATUS ${CMAKE_CXX_FLAGS}) 

или проверить CMakeCache.txt в каталог сборки (или через ccmake или cmake-gui).

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