CMP0129

在版本 3.23 中新增。

MCST LCC 編譯器的編譯器 ID 現在是 LCC,而不是 GNU

CMake 3.23 及以上版本將 MCST LCC 編譯器識別為與 GNU 不同,具有其自己的命令列和功能集。CMake 現在傾向於通過將 CMAKE_<LANG>_COMPILER_ID 變數設定為 LCC 而不是 GNU 來向專案呈現這一點。但是,現有的專案可能會假設 LCC 的編譯器 ID 是 GNU,就像 CMake 3.23 之前的版本一樣。因此,此政策決定了對於 MCST LCC 編譯器,在透過 project()enable_language() 命令啟用語言 <LANG> 後,要在 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 的未來版本中移除。