CMAKE_WATCOM_RUNTIME_LIBRARY

版本 3.24 新增。

選擇供目標為 Watcom ABI 的編譯器使用的 Watcom 執行時期程式庫。此變數用於初始化所有目標建立時的 WATCOM_RUNTIME_LIBRARY 屬性。它也會透過呼叫 try_compile() 命令傳播到測試專案中。

允許的值為

SingleThreaded

編譯時不使用額外旗標,以使用單執行緒靜態連結的執行時期程式庫。

SingleThreadedDLL

使用 -br 或等效旗標編譯,以使用單執行緒動態連結的執行時期程式庫。這不適用於 Linux 目標。

MultiThreaded

使用 -bm 或等效旗標編譯,以使用多執行緒靜態連結的執行時期程式庫。

MultiThreadedDLL

使用 -bm -br 或等效旗標編譯,以使用多執行緒動態連結的執行時期程式庫。這不適用於 Linux 目標。

此值在非 Watcom 編譯器上會被忽略,但當使用目標為 Watcom ABI 的編譯器時,不支援的值將被拒絕並顯示為錯誤。

此值也可能為空字串 (""),在這種情況下,CMake 不會明確新增任何執行時期程式庫選取旗標。

使用 generator expressions 以支援每個組態的規格。

例如,以下程式碼

set(CMAKE_WATCOM_RUNTIME_LIBRARY "MultiThreaded")

為所有後續目標選擇多執行緒靜態連結的執行時期程式庫。

如果未設定此變數,則不會自動設定 WATCOM_RUNTIME_LIBRARY 目標屬性。如果未設定該屬性,則 CMake 在 Windows 上使用預設值 MultiThreadedDLL,在其他平台上使用 SingleThreaded,以選擇 Watcom 執行時期程式庫。

注意

只有在首次啟用使用目標為 Watcom ABI 之編譯器的語言的 project()enable_language() 命令之前,將政策 CMP0136 設定為 NEW 時,此變數才有效。