summaryrefslogtreecommitdiffstats
path: root/Help/policy
diff options
context:
space:
mode:
authorJuan Ramos <juan.ramos@kitware.com>2024-05-28 03:19:05 (GMT)
committerBrad King <brad.king@kitware.com>2024-07-01 16:02:49 (GMT)
commit197cb419d13d5dbb704be97bd3ee04ce514fa58f (patch)
tree7fae6062e544659541c9dd97946ada61fe1c7310 /Help/policy
parent033713530a077893be93e52ef577205cb8466b9d (diff)
downloadCMake-197cb419d13d5dbb704be97bd3ee04ce514fa58f.zip
CMake-197cb419d13d5dbb704be97bd3ee04ce514fa58f.tar.gz
CMake-197cb419d13d5dbb704be97bd3ee04ce514fa58f.tar.bz2
add_custom_command: Add CODEGEN support
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.
Diffstat (limited to 'Help/policy')
-rw-r--r--Help/policy/CMP0171.rst26
1 files changed, 26 insertions, 0 deletions
diff --git a/Help/policy/CMP0171.rst b/Help/policy/CMP0171.rst
new file mode 100644
index 0000000..c364bf4
--- /dev/null
+++ b/Help/policy/CMP0171.rst
@@ -0,0 +1,26 @@
+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