【发布时间】:2015-03-18 13:31:03
【问题描述】:
我有一个包含多个子目录的 CMake 项目,比如这个:
dir1
subdir11
subdir12
dir2
subdir21
subdir22
根 CMakeLists.txt:
add_subdirectory(dir1)
add_subdirectory(dir2)
dir1 和 dir2 中的 CMakeLists 类似:
add_subdirectory(subdir11)
add_subdirectory(subdir12)
和
add_subdirectory(subdir21)
add_subdirectory(subdir22)
子目录中的 CMakeLists 做实际工作。
文件dir1/subdir12/CMakeLists.txt 将CMP0046 策略设置为OLD:
cmake_policy(SET CMP0046 OLD) #silently ignore missing dependencies
我的问题是 - CMP0046 的这个设置会传播到 subdir21 和 subdir22 吗?
【问题讨论】:
-
不要将政策设置为 OLD。改为修复您的代码。存在策略,以便您可以明确地获得新的行为。 OLD 行为将在未来版本中完全删除。
-
对不起,我不能。我的 CMake 代码生成一些头文件和一些 .c 源
-
这毫无意义。生成文件不会阻止将 CMP0046 设置为 NEW。
-
同意,这没有意义。我的目标是抑制有关丢失文件的警告,我用'OLD''CMP0046'实现了它。如果您能建议另一种方法,我将不胜感激。
-
我建议您创建一个 sscce.org 来显示您的问题并发布一个 SO 帖子。将 CMP0046 设置为 OLD 是不正确的,我希望没有人跟随你。
标签: cmake