2010-02-24 76 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擴大到我已經使用設置的標誌CMake的add_definitions()。在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}) 

或檢查build目錄的CMakeCache.txt(或通過ccmakecmake-gui)。