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
,就像在 3.15 之前的 CMake 版本中一样。因此,此策略决定了通过 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 版本中可能会被移除。