# CMP0025

Compiler id for Apple Clang is now `AppleClang`.

CMake 3.0 and above recognize that Apple Clang is a different compiler than upstream Clang and that they have different version numbers. CMake now prefers to present this to projects by setting the `CMAKE_<LANG>_COMPILER_ID` variable to `AppleClang` instead of `Clang`. However, existing projects may assume the compiler id for Apple Clang is just `Clang` as it was in CMake versions prior to 3.0. Therefore this policy determines for Apple Clang 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 `Clang`. The NEW behavior for this policy is to use compiler id `AppleClang`.

This policy was introduced in CMake version 3.0. Use the `cmake_policy()` command to set this policy to OLD or NEW explicitly. Unlike most policies, CMake version 3.13.3 does not warn by default when this policy is not set and simply uses OLD behavior. See documentation of the `CMAKE_POLICY_WARNING_CMP0025` 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.