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
行為是在預設的 CMAKE_<LANG>_FLAGS
快取條目中放置 MSVC 警告標誌。此策略的 NEW
行為是不在預設快取條目中放置 MSVC 警告標誌。
此策略在 CMake 3.15 版本中引入。它可以使用 cmake_policy()
或 cmake_minimum_required()
進行設定。如果未設定,CMake 將不會發出警告,並使用 OLD
行為。
注意
策略的 OLD
行為 根據定義已棄用
,並可能在未來版本的 CMake 中移除。