CMP0089¶
Compiler id for IBM Clang-based XL compilers is now XLClang
.
CMake 3.15 and above recognize that IBM’s Clang-based XL compilers
that define __ibmxl__
are a new front-end distinct from xlc
with a different command line and set of capabilities.
CMake now prefers to present this to projects by setting the
CMAKE_<LANG>_COMPILER_ID
variable to XLClang
instead
of XL
. However, existing projects may assume the compiler id for
Clang-based XL is just XL
as it was in CMake versions prior to 3.15.
Therefore this policy determines for Clang-based XL compilers which
compiler id to report in the CMAKE_<LANG>_COMPILER_ID
variable after language <LANG>
is enabled by the project()
or enable_language()
command. The policy must be set prior
to the invocation of either command.
The OLD
behavior for this policy is to use compiler id XL
. The
NEW
behavior for this policy is to use compiler id XLClang
.
This policy was introduced in CMake version 3.15. Use the
cmake_policy()
command to set this policy to OLD
or NEW
explicitly.
Unlike most policies, CMake version 3.17.5 does not warn
by default when this policy is not set and simply uses OLD
behavior.
See documentation of the
CMAKE_POLICY_WARNING_CMP0089
variable to control the warning.
Note
The OLD
behavior of a policy is
deprecated by definition
and may be removed in a future version of CMake.