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.