CMake在自定义命令中编译C ++文件

时间:2010-02-24 12:16:30

标签: c++ cmake

我正在尝试使用以下命令在GCC中预编译头文件:

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 个答案:

答案 0 :(得分:1)

我不相信add_definitions()将其论据添加到CMAKE_CXX_FLAGS。事实上,据我所知,他们没有保存在任何地方(除了-D/DCOMPILE_DEFINITIONS开头的参数之外)。

解决问题的最简单方法是,无论何时调用add_definitions(),还要手动将这些标记添加到CMAKE_CXX_FLAGS

要查看CMAKE_CXX_FLAGS中的内容,您可以执行

message(STATUS ${CMAKE_CXX_FLAGS})

或检查构建目录中的CMakeCache.txt(或通过ccmakecmake-gui)。