CMP0171ΒΆ

New in version 3.31.

codegen is a reserved target name.

CMake 3.30 and earlier did not reserve codegen as a builtin target name, leaving projects free to create their own target with that name. CMake 3.31 and later prefer to reserve codegen as a builtin target name to drive custom commands created with the CODEGEN option to add_custom_command(). In order to support building the codegen target in scripted environments, e.g., cmake --build . --target codegen, the codegen target needs to be generated even if no custom commands use the CODEGEN option. This policy provides compatibility for projects that have not been updated to avoid creating a target named codegen.

The OLD behavior of this policy allows projects to create a target with the name codegen. The NEW behavior halts with a fatal error if a target with the name codegen is created.

This policy was introduced in CMake version 3.31. It may be set by cmake_policy() or cmake_minimum_required(). If it is not set, CMake warns, and uses OLD behavior.

Note

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