qt_extract_metatypes | Qt Core 6.4.1

- Qt 6.4
- Qt Core
- CMake Commands in Qt6 Core
- qt_extract_metatypes
- Qt 6.4.1 Reference Documentation

# qt_extract_metatypes

Extracts metatypes from a Qt target and generates an associated metatypes.json file.

This command was introduced in Qt 6.0.

Note: This command is in technology preview and may change in future releases.

## Synopsis

     qt_extract_metatypes(target
         [MANUAL_MOC_JSON_FILES json_files...]
         [OUTPUT_FILES variable_name]
     )

If versionless commands are disabled, use `qt6_extract_metatypes()` instead. It supports the same set of arguments as this command.

## Description

Certain operations rely on metatype information being generated and collected on targets. This is typically handled internally by Qt commands, but for scenarios where this is not the case, `qt_extract_metatypes()` can be called to force the collection of this information for a specific `target`.

Metatype information is generated for a target's source files in one of the following ways:

- Automatically by AUTOMOC. The `qt_extract_metatypes()` command detects when AUTOMOC is enabled on the `target` and will automatically extract the information it needs.
- Manually by invoking `moc` with the `--output-json` option. The project is responsible for keeping track of all the JSON files generated using this method and passing them to `qt_extract_metatypes()` with the `MANUAL_MOC_JSON_FILES` option.

`qt_extract_metatypes()` produces a target-specific metatypes JSON file which collects all the metatype details from the AUTOMOC and manual moc inputs. It does this by calling `moc` with the `--collect-json` option. If you need to know where to find the resultant metatypes JSON file (for example, to pass it to another command or to install it), use the `OUTPUT_FILES` option to provide the name of a variable in which to store its absolute path.