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() 預設會在包含的腳本周圍的策略堆疊上 PUSHPOP 項目,但提供 NO_POLICY_SCOPE 選項來停用它。此策略決定是否為了相容性而暗示 NO_POLICY_SCOPE。此策略的 OLD 行為是對 include()find_package() 命令暗示 NO_POLICY_SCOPE。此策略的 NEW 行為是允許命令執行其預設的 cmake_policy PUSHPOP

此策略是在 CMake 2.6.3 版本中引入的。可以使用 cmake_policy()cmake_minimum_required() 進行設定。如果未設定,CMake 會發出警告,並使用 OLD 行為。

注意

策略的 OLD 行為根據定義已棄用的,並可能在 CMake 的未來版本中移除。