# 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.20.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.