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>_FLAGSproject()enable_language() 命令生效。

注意

一旦政策在專案頂層對給定語言生效,該選擇必須在整個樹狀結構中用於該語言。在子目錄中有巢狀專案的專案中,請務必將所有內容一起轉換。

此政策的 OLD 行為是將 MSVC 警告旗標放置在預設的 CMAKE_<LANG>_FLAGS 快取條目中。此政策的 NEW 行為是將 MSVC 警告旗標放置在預設快取條目中。

此政策在 CMake 版本 3.15 中引入。它可以通過 cmake_policy()cmake_minimum_required() 設置。如果未設置,CMake 會警告,並使用 OLD 行為。

注意

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