CMP0011¶
包含的脚本执行自动 cmake_policy() PUSH 和 POP。
在 CMake 2.6.2 及以下版本中,由 include() 和 find_package() 命令加载的脚本中的 CMake Policy 设置会影响包含器。需要显式调用 cmake_policy(PUSH) 和 cmake_policy(POP) 来隔离策略更改并保护包含程序。虽然一些脚本打算影响其包含器的策略,但大多数不会。在 CMake 2.6.3 及更高版本中, include() 和 find_package() 默认情况下 PUSH 和 POP 是包含脚本的策略堆栈上的一个条目,但提供一个 `` NO_POLICY_SCOPE`` 选项来禁用它。此策略确定是否暗示“NO_POLICY_SCOPE”以实现兼容性。此策略的“旧”行为是为 include() 和 find_package() 命令暗示 NO_POLICY_SCOPE。此策略的“新”行为是允许命令执行其默认的 cmake_policy PUSH 和 POP。
此策略是在 CMake 版本 2.6.3 中引入的。 CMake 版本 |发布|当未设置策略并使用“旧”行为时发出警告。使用 cmake_policy() 命令将其显式设置为 OLD 或 NEW。
备注
策略的“旧”行为是 :manual:根据定义 <cmake-policies(7)> 已弃用,并且可能会在未来版本的 CMake 中删除。