Back to Cmake

CMP0171

Help/policy/CMP0171.rst

4.3.21.1 KB
Original Source

CMP0171

.. 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