New in version 3.23.

Compiler id for MCST LCC compilers is now LCC, not GNU.

CMake 3.23 and above recognize MCST LCC compiler as a different from GNU, with its own command line and set of capabilities. CMake now prefers to present this to projects by setting the CMAKE_<LANG>_COMPILER_ID variable to LCC instead of GNU. However, existing projects may assume the compiler id for LCC is GNU as it was in CMake versions prior to 3.23. Therefore this policy determines for MCST LCC compiler 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 GNU (and set CMAKE_<LANG>_COMPILER_VERSION to the supported GNU compiler version.) NEW behavior for this policy is to use compiler id LCC, and set CMAKE_<LANG>_SIMULATE_ID to GNU, and CMAKE_<LANG>_SIMULATE_VERSION to the supported GNU compiler version.

This policy was introduced in CMake version 3.23. Use the cmake_policy() command to set this policy to OLD or NEW explicitly. Unlike most policies, CMake version 3.28.6 does not warn by default when this policy is not set and simply uses OLD behavior. See documentation of the CMAKE_POLICY_WARNING_CMP0129 variable to control the warning.


The OLD behavior of a policy is deprecated by definition and may be removed in a future version of CMake.