Sur cette page

qt_extract_metatypes

Extrait les métatypes d'une cible Qt et génère un fichier metatypes.json associé.

La commande est définie dans le composant Core du paquetage Qt6, qui peut être chargé comme suit :

find_package(Qt6 REQUIRED COMPONENTS Core)

Cette commande a été introduite dans Qt 6.0.

Note : Cette commande est en avant-première technologique et peut être modifiée dans les prochaines versions.

Synopsis

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

Si les commandes sans version sont désactivées, utilisez qt6_extract_metatypes() à la place. Elle prend en charge le même ensemble d'arguments que cette commande.

Description de la commande

Certaines opérations reposent sur la génération et la collecte d'informations de métatype sur les cibles. Ceci est généralement géré en interne par les commandes Qt XML, mais pour les scénarios où ce n'est pas le cas, qt_extract_metatypes() peut être appelé pour forcer la collecte de ces informations pour une cible spécifique target.

Les informations sur les métatypes sont générées pour les fichiers source d'une cible de l'une des manières suivantes :

  • Automatiquement par AUTOMOC. La commande qt_extract_metatypes() détecte si AUTOMOC est activé sur le site target et extrait automatiquement les informations dont elle a besoin.
  • Manuellement en invoquant moc avec l'option --output-json. Le projet est responsable du suivi de tous les fichiers JSON générés à l'aide de cette méthode et de leur transmission à qt_extract_metatypes() avec l'option MANUAL_MOC_JSON_FILES.

qt_extract_metatypes() produit un fichier JSON de métatypes spécifiques à la cible qui rassemble tous les détails des métatypes à partir des entrées AUTOMOC et moc manuelles. Pour ce faire, il appelle moc avec l'option --collect-json. Si vous avez besoin de savoir où trouver le fichier JSON de métatypes résultant (par exemple, pour le passer à une autre commande ou pour l'installer), utilisez l'option OUTPUT_FILES pour fournir le nom d'une variable dans laquelle stocker son chemin absolu.

Extraction automatique des métatypes

Depuis Qt 6.8, si vous n'avez pas désactivé AUTOMOC et que vous utilisez CMake 3.19 ou une version ultérieure ou que vous appelez qt_finalize_target() manuellement, alors qt_extract_metatypes() est automatiquement appelé dans le cadre de l'étape de finalisation de qt_add_library. Cela n'a aucun effet si vous avez appelé manuellement qt_extract_metatypes() avant la finalisation, éventuellement avec des arguments personnalisés. Cependant, cela permet de s'assurer que les métatypes sont également produits si vous ne l'avez pas fait. Ceci est important si l'un des types de la bibliothèque est utilisé comme partie d'un type QML dans le futur et n'a pas d'inconvénient.

De plus, qt_add_qml_module invoque automatiquement qt_extract_metatypes() pour sa cible.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.