如何使用CMake更改文件夹的编译标志?

时间:2013-02-05 04:43:33

标签: compiler-construction cmake compiler-optimization

我正在使用CMake为我的项目生成Makefile。

我想用不同的选项编译一些文件。 例如,所有文件都带有-fX,但测试文件夹中的文件带有-fno-X。

CMake有可能吗?

以下是我的CMakeLists.txt文件中包含源文件的部分:

file(
    GLOB_RECURSE
    compiler_files
    src/*.cpp
)

file(GLOB to_remove src/eddi.cpp)
list(REMOVE_ITEM compiler_files ${to_remove})

add_library(Compiler OBJECT ${compiler_files})

add_executable(eddic $<TARGET_OBJECTS:Compiler> src/eddi.cpp)
target_link_libraries (eddic boost_program_options)

1 个答案:

答案 0 :(得分:3)

您可以使用set_source_files_properties命令将编译标志添加到特定文件:

SET_SOURCE_FILES_PROPERTIES(
  ${list_of_noX_files}
  PROPERTIES
  COMPILE_FLAGS "-fno-X"
)

在这种情况下,变量list_of_noX_files中列出的文件将使用附加到默认选项的选项-fno-X进行编译。