CMP0136¶
在版本 3.24 中新增。
Watcom 執行時期程式庫旗標由抽象化機制選取。
目標為 Watcom ABI 的編譯器具有選取 Watcom 執行時期程式庫的旗標。
在 CMake 3.23 及更早版本中,Watcom 執行時期程式庫選取旗標會自動新增至預設的 CMAKE_<LANG>_FLAGS_<CONFIG>
快取條目中。這允許使用者編輯其快取條目以調整旗標。然而,對於想要以程式化方式選擇不同執行時期程式庫的專案而言,這些預設旗標的存在是有問題的。特別是,這需要字串編輯 CMAKE_<LANG>_FLAGS_<CONFIG>
變數,並具備 CMake 內建預設值的知識,以便可以替換它們。
CMake 3.24 及更高版本傾向於將 Watcom 執行時期程式庫選取旗標排除在預設的 CMAKE_<LANG>_FLAGS_<CONFIG>
值之外,而是提供一流的抽象化機制。CMAKE_WATCOM_RUNTIME_LIBRARY
變數和 WATCOM_RUNTIME_LIBRARY
目標屬性可以設定以選取 Watcom 執行時期程式庫。如果它們未設定,則 CMake 在 Windows 上使用預設值 MultiThreadedDLL
,在其他平台上使用 SingleThreaded
,這相當於原始旗標。
此政策提供與尚未更新以了解抽象化機制的專案的相容性。政策設定在啟用以 Watcom ABI 為目標的語言的第一個 project()
或 enable_language()
命令生效。
注意
一旦政策在專案頂層生效,該選擇必須在整個樹狀結構中使用。在子目錄中具有巢狀專案的專案中,請務必一起轉換所有內容。
此政策的 OLD
行為是將 Watcom 執行時期程式庫旗標放置在預設的 CMAKE_<LANG>_FLAGS_<CONFIG>
快取條目中,並忽略 CMAKE_WATCOM_RUNTIME_LIBRARY
抽象化機制。此政策的 NEW
行為是不將 Watcom 執行時期程式庫旗標放置在預設快取條目中,而是改用抽象化機制。
此政策在 CMake 版本 3.24 中引入。它可以使用 cmake_policy()
或 cmake_minimum_required()
進行設定。如果未設定,CMake 不會警告,並使用 OLD
行為。
注意
政策的 OLD
行為依 定義已被棄用
,並可能在未來版本的 CMake 中移除。