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 的未來版本中移除。