CMP0171ΒΆ
Added 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.