CMP0102¶
於 3.17 版本新增。
mark_as_advanced()
命令若快取條目不存在時,將不再建立該條目。
在 CMake 3.16 及更早版本中,如果變數完全未定義或僅在本地定義,mark_as_advanced()
命令會建立一個新的快取條目,其類型為 UNINITIALIZED
且沒有值。當下一次執行 find_path()
(或其他類似的 find_
命令)時,它會找到這個未定義的快取條目,並將其設定為空字串值。這個過程最終會刪除本地變數(由於快取的工作方式),有效地清除任何僅在本地範圍內可用的已儲存 find_
結果。
此政策的 OLD
行為是建立空的快取定義。此政策的 NEW
行為是忽略快取中還不存在的變數。
此政策於 CMake 版本 3.17 中引入。它可以使用 cmake_policy()
或 cmake_minimum_required()
設定。如果未設定,CMake 預設情況下不會發出警告,並使用 OLD
行為。
請參閱 CMAKE_POLICY_WARNING_CMP0102
變數的文件以控制警告。
注意
政策的 OLD
行為 按定義已棄用
,並可能在未來版本的 CMake 中移除。