CMP0129

於 3.23 版本新增。

MCST LCC 編譯器的編譯器 ID 現在為 LCC,而非 GNU

CMake 3.23 及以上版本將 MCST LCC 編譯器視為與 GNU 不同,具有其自身的命令列和功能集。CMake 現在傾向於透過將 CMAKE_<LANG>_COMPILER_ID 變數設定為 LCC 而非 GNU 來向專案呈現此情況。然而,現有的專案可能會假設 LCC 的編譯器 ID 為 GNU,如同在 3.23 之前的 CMake 版本中一樣。因此,此政策決定了對於 MCST LCC 編譯器,在語言 <LANG>project()enable_language() 命令啟用後,要在 CMAKE_<LANG>_COMPILER_ID 變數中報告哪個編譯器 ID。此政策必須在任一命令調用之前設定。

此政策的 OLD 行為是使用編譯器 ID GNU (並將 CMAKE_<LANG>_COMPILER_VERSION 設定為支援的 GNU 編譯器版本)。此政策的 NEW 行為是使用編譯器 ID LCC,並將 CMAKE_<LANG>_SIMULATE_ID 設定為 GNU,並將 CMAKE_<LANG>_SIMULATE_VERSION 設定為支援的 GNU 編譯器版本。

此政策是在 CMake 3.23 版本中引入的。可以透過 cmake_policy()cmake_minimum_required() 設定。如果未設定,CMake 預設不會發出警告,並使用 OLD 行為。

請參閱 CMAKE_POLICY_WARNING_CMP0129 變數的文件以控制警告。

注意

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