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

Changed in version 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

will be marked with the GENERATED property.

When a generated file created as the OUTPUT of an 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 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 AUTOMOC, AUTORCC or AUTOUIC functionality, the AUTOGEN_SOURCE_GROUP, AUTOMOC_SOURCE_GROUP, AUTORCC_SOURCE_GROUP and AUTOUIC_SOURCE_GROUP target properties may influence where the generated sources are grouped in the project's file lists.


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 CMP0118 was introduced to allow supporting the OLD behavior for some time.