Help/policy/CMP0171.rst
.. versionadded:: 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
:command: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.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.31 .. |WARNS_OR_DOES_NOT_WARN| replace:: warns .. include:: include/STANDARD_ADVICE.rst
.. include:: include/DEPRECATED.rst