GENERATED
---------

Is this source file generated as part of the build or CMake process.

.. versionchanged:: 3.20
  The GENERATED source file property is now visible in all directories.

Tells the internal CMake engine that a source file is generated by an outside
process such as another build step, or the execution of CMake itself.
This information is then used to exempt the file from any existence or
validity checks.

Any file that is

- created by the execution of commands such as
  :command:`add_custom_command` and :command:`file(GENERATE)`
- listed as one of the ``BYPRODUCTS`` of an :command:`add_custom_command`
  or :command:`add_custom_target` command, or
- created by a CMake ``AUTOGEN`` operation such as :prop_tgt:`AUTOMOC`,
  :prop_tgt:`AUTORCC`, or :prop_tgt:`AUTOUIC`

will be marked with the ``GENERATED`` property.

When a generated file created as the ``OUTPUT`` of an
:command:`add_custom_command` command is explicitly listed as a source file
for any target in the same directory scope (which usually means the same
``CMakeLists.txt`` file), CMake will automatically create a dependency to
make sure the file is generated before building that target.

The :ref:`Makefile Generators` will remove ``GENERATED`` files during
``make clean``.

Generated sources may be hidden in some IDE tools, while in others they might
be shown. For the special case of sources generated by CMake's :prop_tgt:`AUTOMOC`,
:prop_tgt:`AUTORCC` or :prop_tgt:`AUTOUIC` functionality, the
:prop_gbl:`AUTOGEN_SOURCE_GROUP`, :prop_gbl:`AUTOMOC_SOURCE_GROUP`,
:prop_gbl:`AUTORCC_SOURCE_GROUP` and :prop_gbl:`AUTOUIC_SOURCE_GROUP` target
properties may influence where the generated sources are grouped in the project's
file lists.

.. note::

  Starting with CMake 3.20 the ``GENERATED`` source file property can be set
  and retrieved from any directory scope. It is an all-or-nothing property.
  It also can no longer be removed or unset if it was set to ``TRUE``. Policy
  :policy:`CMP0118` was introduced to allow supporting the ``OLD`` behavior
  for some time.
