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
。此策略的 OLD
行為是對 include()
和 find_package()
命令暗示 NO_POLICY_SCOPE
。此策略的 NEW
行為是允許命令執行其預設的 cmake_policy PUSH
和 POP
。
此策略是在 CMake 2.6.3 版本中引入的。可以使用 cmake_policy()
或 cmake_minimum_required()
進行設定。如果未設定,CMake 會發出警告,並使用 OLD
行為。
注意
策略的 OLD
行為根據定義
是已棄用
的,並可能在 CMake 的未來版本中移除。