| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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`
- or :prop_tgt:`AUTORCC` functionality, the :prop_gbl:`AUTOGEN_SOURCE_GROUP`,
- :prop_gbl:`AUTOMOC_SOURCE_GROUP` and :prop_gbl:`AUTORCC_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.
|