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 行為是在預設的 CMAKE_<LANG>_FLAGS 快取條目中放置 MSVC 警告標誌。此策略的 NEW 行為是在預設快取條目中放置 MSVC 警告標誌。

此策略在 CMake 3.15 版本中引入。它可以使用 cmake_policy()cmake_minimum_required() 進行設定。如果未設定,CMake 將會發出警告,並使用 OLD 行為。

注意

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