将CMAKE_CXX_FLAG设置在父目录中一次,并在子目录中有效

set CMAKE_CXX_FLAGS once in parent directory and have it valid in child directories

本文关键字:一次 有效 子目录 FLAG CXX CMAKE 设置      更新时间:2023-10-16

我有一个带有cmakelists.txt文件的目录结构:

Parent_DIR/CMakeLists.txt
Parent_DIR/src/CMakeLists.txt
Parent_DIR/test/CMakeLists.txt

我还有一个预处理器变量double_precision,它可以控制我所有的计算是用双打或浮子完成的。有人告诉我我需要单独设置每个文件夹中的变量,要么用

设置
set(DOUBLE_PRECISION 1)

set(CMAKE_CXX_FLAGS "-DDOUBLE_PRECISION")

我的问题是:是否有任何方法可以在父目录中设置此变量一次,而不必在每个cmakelists.txt文件中设置它?似乎每次必须手动设置它似乎很容易出错。

而不是修改 CMAKE_CXX_FLAGS添加cmake命令add_definitions

add_definitions(-DDOUBLE_PRECISION)

使用add_subdirectory输入子目录之前,请访问您的Parent_DIR/CMakeLists.txt。该命令将预处理器定义添加到当前目录和以下源的编译器命令行中。

如果在缓存中设置一个变量,则将为整个项目,子目录和父目录中设置它。将CACHE添加到您的set命令中。

相关文章: