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