Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compiler construction 如何使用CMake更改文件夹的编译标志?_Compiler Construction_Cmake_Compiler Optimization - Fatal编程技术网

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

Compiler construction 如何使用CMake更改文件夹的编译标志?,compiler-construction,cmake,compiler-optimization,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_remo

我正在使用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)
文件(
全局递归
编译器文件
src/*.cpp
)
文件(GLOB to_remove src/eddi.cpp)
列表(删除\u项编译器\u文件${to\u REMOVE})
添加库(编译器对象${Compiler\u files})
添加可执行文件(eddic$src/eddi.cpp)
目标链接库(eddic boost程序选项)

您可以使用
set\u source\u files\u properties
命令向特定文件添加编译标志:

SET_SOURCE_FILES_PROPERTIES(
  ${list_of_noX_files}
  PROPERTIES
  COMPILE_FLAGS "-fno-X"
)
在这种情况下,将使用默认选项后附加的选项
-fno-X
来编译变量
list\u of_noX\u files
中列出的文件