CMP0126¶
在版本 3.21 中新增。
當此政策設定為 NEW
時,set(CACHE)
命令不會從目前作用域中移除任何同名的普通變數。OLD
行為會在以下情況中從目前作用域移除任何同名的普通變數
先前不存在該名稱的快取變數。
先前存在該名稱的快取變數,但它沒有類型。當變數在命令列上使用類似
cmake -DMYVAR=blah
而不是cmake -DMYVAR:STRING=blah
的形式設定時,可能會發生這種情況。當設定快取變數時,使用了
FORCE
或INTERNAL
關鍵字。
請注意,NEW
行為與政策 CMP0077
的類似 NEW
行為有一個重要的差異。set(CACHE)
命令總是會設定快取變數(如果先前不存在),無論 CMP0126
政策設定為何。option()
命令將不會設定快取變數,如果同名的非快取變數已存在,且 CMP0077
設定為 NEW
。
此政策在 CMake 版本 3.21 中引入。它可以透過 cmake_policy()
或 cmake_minimum_required()
設定。如果未設定,CMake 預設不發出警告,並使用 OLD
行為。
請參閱 CMAKE_POLICY_WARNING_CMP0126
變數的文件,以控制警告。
CMAKE_POLICY_DEFAULT_CMP0126
變數可用於在子目錄中為第三方專案設定政策,而無需修改它。
注意
政策的 OLD
行為依定義已被棄用
,並可能在 CMake 的未來版本中移除。