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,就像 CMake 3.15 之前的版本一樣。 因此,此策略決定了對於 Clang 架構的 XL 編譯器,在通過 project()enable_language() 命令啟用語言 <LANG> 之後,要在 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 中移除。