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