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() 默认会在包含的脚本周围对策略栈进行 PUSHPOP 操作,同时也提供了 NO_POLICY_SCOPE 选项来禁用此行为。此策略决定了为了保持兼容性,是否默认隐含 NO_POLICY_SCOPE。该策略的 OLD 行为是为 include()find_package() 命令隐含 NO_POLICY_SCOPE。该策略的 NEW 行为是允许命令执行其默认的 cmake_policy PUSHPOP

此策略在 CMake 2.6.3 版本中引入。在 CMake 4.0 版本移除之前,它可以通过 cmake_policy()cmake_minimum_required() 进行设置。如果未设置,CMake 会发出警告并使用 OLD 行为。