2

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

我想编译一些具有不同选项的文件。例如,所有文件都带有 -fX,但 test 文件夹中的文件带有 -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)
4

1 回答 1

3

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

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

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

于 2013-02-06T10:56:42.857 回答