CMP0092¶
在版本 3.15 中新增。
MSVC 警告旗標預設不在 CMAKE_<LANG>_FLAGS
中。
在使用 CMake 3.14 及更舊版本中的類 MSVC 編譯器時,像 /W3
這樣的警告旗標預設會被加入到 CMAKE_<LANG>_FLAGS
中。這對於想要以程式化方式選擇不同警告級別的專案來說是有問題的。特別是,這需要編輯 CMAKE_<LANG>_FLAGS
變數的字串,並且需要知道 CMake 內建的預設值,以便它們可以被替換。
CMake 3.15 及更高版本傾向於預設將警告旗標從 CMAKE_<LANG>_FLAGS
的值中移除。
此政策為尚未更新以預期缺少警告旗標的專案提供相容性。政策設定在第一個初始化給定語言 <LANG>
的 CMAKE_<LANG>_FLAGS
的 project()
或 enable_language()
命令生效。
注意
一旦政策在專案頂層對給定語言生效,該選擇必須在整個樹狀結構中用於該語言。在子目錄中有巢狀專案的專案中,請務必將所有內容一起轉換。
此政策的 OLD
行為是將 MSVC 警告旗標放置在預設的 CMAKE_<LANG>_FLAGS
快取條目中。此政策的 NEW
行為是不將 MSVC 警告旗標放置在預設快取條目中。
此政策在 CMake 版本 3.15 中引入。它可以通過 cmake_policy()
或 cmake_minimum_required()
設置。如果未設置,CMake 不會警告,並使用 OLD
行為。
注意
政策的 OLD
行為是 根據定義已棄用
,並可能在 CMake 的未來版本中移除。