
By specifying CODEGEN as an argument to add_custom_command the custom command will be added to a codegen build target. The intent is to provide a convenient way for users to get their generated files without having to build the whole project. This can be helpful for code analysis tools which can be useful for IDEs and CI.
27 lines
1.1 KiB
ReStructuredText
27 lines
1.1 KiB
ReStructuredText
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:: STANDARD_ADVICE.txt
|
|
|
|
.. include:: DEPRECATED.txt
|