CMP0089¶
版本 3.15 新增。
IBM Clang-based XL 编译器的编译器 ID 现在是 XLClang。
CMake 3.15 及以上版本识别出定义了 __ibmxl__ 的 IBM Clang-based XL 编译器是一种新的前端,与 xlc 不同,它具有不同的命令行和功能集。CMake 现在通过将 CMAKE_<LANG>_COMPILER_ID 变量设置为 XLClang 而不是 XL 来向项目呈现这一点。然而,现有项目可能假设 Clang-based XL 的编译器 ID 就像 CMake 3.15 之前的版本一样,只是 XL。因此,此策略决定了在语言 <LANG> 由 project() 或 enable_language() 命令启用后,用于 Clang-based XL 编译器的 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 版本中被移除。