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 就像 CMake 3.15 之前的版本一样,只是 XL。因此,此策略确定对于基于 Clang 的 XL 编译器,在 CMAKE_<LANG>_COMPILER_ID 变量中报告的编译器 ID,在通过 project()enable_language() 命令启用语言 <LANG> 之后。策略必须在调用任一命令之前设置。

此策略的 OLD 行为是使用编译器 ID XL。此策略的 NEW 行为是使用编译器 ID XLClang

此策略已在 CMake 版本 3.15 中引入。它可以通过 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake 默认发出警告,并使用 OLD 行为。

请参阅 CMAKE_POLICY_WARNING_CMP0089 变量的文档来控制警告。

注意

策略的 OLD 行为是按定义已弃用,并可能在未来的 CMake 版本中被移除。