我有一个包含多个子目录的 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.txtCMP0046 策略设置为 OLD :
cmake_policy(SET CMP0046 OLD) #silently ignore missing dependencies

我的问题是 - CMP0046 的这个设置会传播到 subdir21subdir22 吗?

最佳答案

不。这个问题最好直接回答 from the documentation ...



要对特定级别进行临时更改,不包括 sub_directories,您可以使用

cmake_policy(PUSH)
cmake_policy(POP)

如果您希望在 subdir21 和 subdir22 中应用策略,则需要在那里显式添加它或考虑将其添加到公共(public)父级。

关于cmake - CMake 政策的范围是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29123444/

10-13 06:26