Sur cette page

qt_add_plugin

Crée une cible de plugin Qt.

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.

Synopsis

qt_add_plugin(target
              [SHARED | STATIC]
              [CLASS_NAME class_name]
              [OUTPUT_TARGETS variable_name]
              [MANUAL_FINALIZATION]
              sources...
)

L'option MANUAL_FINALIZATION et la possibilité de définir des sources ont été introduites dans Qt 6.5.

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

Description de la commande

Les cibles de plugins Qt ont des exigences supplémentaires par rapport à une cible de bibliothèque CMake ordinaire. La commande qt_add_plugin() ajoute les manipulations nécessaires pour s'assurer que ces exigences sont respectées. Elle doit être appelée plutôt que la commande CMake add_library() intégrée lors de la définition d'une cible de plugin Qt.

Par défaut, le plugin sera créé en tant que bibliothèque STATIC si Qt a été construit statiquement, ou en tant que bibliothèque MODULE dans le cas contraire. Vous pouvez ignorer cette valeur par défaut en fournissant explicitement l'option STATIC ou SHARED.

Tout sources fourni sera transmis à l'appel interne à add_library().

Note : Les plugins non statiques sont destinés à être chargés dynamiquement au moment de l'exécution, et non liés au moment de la compilation. CMake fait la différence entre ces deux scénarios en fournissant le type de bibliothèque MODULE pour les bibliothèques chargées dynamiquement, et le type de bibliothèque SHARED pour les bibliothèques qui peuvent être liées directement. Cette distinction est importante pour certaines chaînes d'outils (notamment Visual Studio), en raison de la manière dont les exportations de symboles sont gérées. Il peut être impossible d'établir des liens avec les bibliothèques MODULE, et la génération d'une bibliothèque SHARED sans symboles exportés peut entraîner des erreurs de compilation. Si l'option SHARED est passée à qt_add_plugin(), elle créera donc une bibliothèque MODULE plutôt qu'une bibliothèque SHARED.

Chaque plugin Qt a un nom de classe. Par défaut, ce nom est le même que celui de target, mais il peut être remplacé par l'option CLASS_NAME. Le nom de la classe correspond au nom de la classe C++ qui déclare les métadonnées du plugin. Pour les greffons statiques, il s'agit également du nom transmis à Q_IMPORT_PLUGIN, qui importe le greffon dans une application et s'assure qu'il est disponible au moment de l'exécution.

Si le greffon est construit de manière statique, qt_add_plugin() peut définir des cibles internes supplémentaires. Celles-ci facilitent l'importation automatique du greffon pour tout exécutable ou bibliothèque partagée lié au greffon. Si le projet installe le greffon et a l'intention de le mettre à la disposition d'autres projets, il doit également installer ces cibles internes. Les noms de ces cibles peuvent être obtenus en fournissant l'option OUTPUT_TARGETS, suivie du nom d'une variable dans laquelle retourner la liste des cibles.

Finalisation

Après la création d'une cible, d'autres étapes de traitement ou de finalisation peuvent être nécessaires. Le traitement de finalisation est implémenté par la commande qt_finalize_target().

Pour plus de détails et pour connaître la signification de l'option MANUAL_FINALIZATION, reportez-vous à la documentation sur la finalisation pour qt_add_library.

Voir aussi qt_finalize_target() et qt_add_executable().

© 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.