1CMP0089 2------- 3 4.. versionadded:: 3.15 5 6Compiler id for IBM Clang-based XL compilers is now ``XLClang``. 7 8CMake 3.15 and above recognize that IBM's Clang-based XL compilers 9that define ``__ibmxl__`` are a new front-end distinct from ``xlc`` 10with a different command line and set of capabilities. 11CMake now prefers to present this to projects by setting the 12:variable:`CMAKE_<LANG>_COMPILER_ID` variable to ``XLClang`` instead 13of ``XL``. However, existing projects may assume the compiler id for 14Clang-based XL is just ``XL`` as it was in CMake versions prior to 3.15. 15Therefore this policy determines for Clang-based XL compilers which 16compiler id to report in the :variable:`CMAKE_<LANG>_COMPILER_ID` 17variable after language ``<LANG>`` is enabled by the :command:`project` 18or :command:`enable_language` command. The policy must be set prior 19to the invocation of either command. 20 21The ``OLD`` behavior for this policy is to use compiler id ``XL``. The 22``NEW`` behavior for this policy is to use compiler id ``XLClang``. 23 24This policy was introduced in CMake version 3.15. Use the 25:command:`cmake_policy` command to set this policy to ``OLD`` or ``NEW`` explicitly. 26Unlike most policies, CMake version |release| does *not* warn 27by default when this policy is not set and simply uses ``OLD`` behavior. 28See documentation of the 29:variable:`CMAKE_POLICY_WARNING_CMP0089 <CMAKE_POLICY_WARNING_CMP<NNNN>>` 30variable to control the warning. 31 32.. include:: DEPRECATED.txt 33