CMP0011¶
警告
此策略的 OLD 行为已在 CMake 4.0 版本中移除。此策略必须通过调用 cmake_minimum_required() 或 cmake_policy() 来设置为 NEW。
包含的脚本会自动执行 cmake_policy() 的 PUSH 和 POP 操作。
在 CMake 2.6.2 及更早版本中,由 include() 和 find_package() 命令加载的脚本中的 CMake 策略设置会影响调用者。需要显式调用 cmake_policy(PUSH) 和 cmake_policy(POP) 来隔离策略更改并保护调用者。虽然有些脚本旨在影响其调用者的策略,但大多数脚本并非如此。在 CMake 2.6.3 及更高版本中,include() 和 find_package() 默认会在包含脚本前后自动 PUSH 和 POP 策略堆栈中的一个条目,但提供了一个 NO_POLICY_SCOPE 选项来禁用它。此策略决定是否为兼容性而隐含 NO_POLICY_SCOPE。此策略的 OLD 行为是对 include() 和 find_package() 命令隐含 NO_POLICY_SCOPE。此策略的 NEW 行为是允许命令执行其默认的 cmake_policy PUSH 和 POP。
此策略引入于 CMake 版本 2.6.3。在 4.0 版本中移除之前,可以通过 cmake_policy() 或 cmake_minimum_required() 设置。如果未设置,CMake 会发出警告并使用 OLD 行为。