CMP0089

在 3.15 版本加入.

基于 IBM Clang 的 XL 编译器的编译器 ID 现在是“XLClang”。

CMake 3.15 及更高版本认识到 IBM 的基于 Clang 的 XL 编译器定义了``__ibmxl__`` 是一种新的前端,不同于``xlc``,具有不同的命令行和功能集。 CMake 现在更喜欢通过将 CMAKE_<LANG>_COMPILER_ID 变量设置为 XLClang 而不是 XL 来将其呈现给项目。然而,现有项目可能假设基于 Clang 的 XL 的编译器 ID 只是“XL”,因为它在 3.15 之前的 CMake 版本中。因此,此策略为基于 Clang 的 XL 编译器确定在 project() 或 :command 启用语言 <LANG> 后,在 CMAKE_<LANG>_COMPILER_ID 变量中报告哪个编译器 ID :enable_language 命令。该策略必须在调用任一命令之前设置。

此策略的“旧”行为是使用编译器 ID“XL”。此政策的“新”行为是使用编译器 ID“XLClang”。

此策略是在 CMake 版本 3.15 中引入的。使用 cmake_policy() 命令将此策略显式设置为 OLDNEW。与大多数政策不同,CMake 版本 |release|当此策略未设置且仅使用“旧”行为时,默认情况下*不*发出警告。请参阅 CMAKE_POLICY_WARNING_CMP0089 变量的文档以控制警告。

备注

策略的“旧”行为是 :manual:根据定义 <cmake-policies(7)> 已弃用,并且可能会在未来版本的 CMake 中删除。