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 中移除。