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

标签 compiler-construction cmake compiler-optimization

我正在使用 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)

最佳答案

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

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

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

关于compiler-construction - 如何使用 CMake 更改文件夹的编译标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14700354/

相关文章:

c++ - cmake 生成的 makefile 错误中的奇怪字符 "â"

c++ - 如何在内部函数中使用 if 条件

c# - .Net 编译器 Hook

c - 乱序解析 C 系列语言

c++ - Visual Studio 无法识别 __AVX2__ 或 __AVX__

windows - 无法使用 MinGW 和 git bash 在 Windows 上运行 Cmake

Java for 循环优化 - 在循环之前存储 getter

java - 热点 JIT 优化

maven - 配置 GWT 编译器以使用更少的内存?

c++ - 是否允许 C++ 编译器发出编译同一程序的不同机器代码?