CMP0089¶
在 3.15 版本中新增。
基於 IBM Clang 的 XL 編譯器的編譯器 ID 現在是 XLClang
。
CMake 3.15 及更高版本會將定義 __ibmxl__
的 IBM 基於 Clang 的 XL 編譯器識別為與 xlc
不同的新前端,具有不同的命令列和功能集。CMake 現在偏好將此呈現給專案,方法是將 CMAKE_<LANG>_COMPILER_ID
變數設定為 XLClang
而不是 XL
。但是,現有的專案可能會假設基於 Clang 的 XL 的編譯器 ID 僅為 XL
,如同在 3.15 之前的 CMake 版本中一樣。因此,此策略決定基於 Clang 的 XL 編譯器在語言 <LANG>
由 project()
或 enable_language()
命令啟用後,在 CMAKE_<LANG>_COMPILER_ID
變數中要報告哪個編譯器 ID。此策略必須在任一命令調用之前設定。
此策略的 OLD
行為是使用編譯器 ID XL
。此策略的 NEW
行為是使用編譯器 ID XLClang
。
此策略在 CMake 3.15 版本中引入。它可以由 cmake_policy()
或 cmake_minimum_required()
設定。如果未設定,CMake 預設情況下不會發出警告,並使用 OLD
行為。
請參閱 CMAKE_POLICY_WARNING_CMP0089
變數的文件以控制警告。
注意
策略的 OLD
行為根據定義是 已棄用
,並可能在未來版本的 CMake 中移除。