qt_deploy_qml_imports
Déployer les composants d’exécution des modules QML requis par un exécutable.
La commande est définie dans le composant ` Qml ` du paquet ` Qt6 `, qui peut être chargé comme suit :
find_package(Qt6 REQUIRED COMPONENTS Qml)Contrairement à la plupart des autres commandes CMake fournies par Qt, qt_deploy_qml_imports ne peut être appelée qu’à partir d’un script de déploiement. Elle ne peut pas être appelée directement par le projet.
Avertissement : si vous utilisez une version de CMake antérieure à la version 3.19, veillez à passer l’option ` MANUAL_FINALIZATION ` à `qt_add_executable()`, puis à appeler `qt_finalize_target()` avant d’appeler cette fonction.
Synopsis
qt_deploy_qml_imports(
TARGET target
[QML_DIR qml_dir]
[PLUGINS_FOUND var_name]
[NO_QT_IMPORTS]
)Description
Remarque : cette commande n’a généralement pas besoin d’être appelée directement. Elle est utilisée en interne par d’autres commandes de niveau supérieur, mais les projets souhaitant mettre en œuvre une logique de déploiement plus personnalisée peuvent la trouver utile.
Lors de l’installation d’une application utilisant QML, il peut s’avérer complexe de déterminer quels modules QML et quelles parties de ces modules doivent également être installés. Comme les plugins QML ne sont pas liés directement à l’exécutable d’une application, qt_deploy_runtime_dependencies() ne détectera pas ces modules QML. La commande ` qt_deploy_qml_imports() ` fournit la logique nécessaire qui complète ` qt_deploy_runtime_dependencies() ` et déploie les composants d'exécution de tous les modules QML importés par l'application.
L’option TARGET est obligatoire et doit spécifier un target qui soit à la fois un exécutable (sous macOS, il doit s’agir d’un bundle d’application) et un module QML. Toutes les sources QML ajoutées à l’ target via qt_add_qml_module() ou qt_target_qml_sources() seront analysées de manière récursive à la recherche d’importations QML. L’option ` NO_IMPORT_SCAN ` ne doit pas avoir été fournie à ` qt_add_qml_module()`. Les fichiers ` qmldir ` et les plugins des modules QML importés seront déployés. L’option ` NO_QT_IMPORTS ` peut être fournie pour ignorer le déploiement de tout module QML fourni par Qt.
Par défaut, les composants d’exécution des modules QML importés seront déployés dans le répertoire Resources/qml pour une cible de bundle d’application macOS, et dans le répertoire qml situé sous l’emplacement d’installation de base pour les autres plateformes. Pour les plateformes autres que macOS, l’option QML_DIR peut être utilisée pour remplacer ce choix par défaut.
La commande stockera une liste de tous les plugins QML qu’elle déploie dans la variable nommée par l’option PLUGINS_FOUND, si celle-ci est fournie. Celle-ci est souvent transmise en tant qu’argument ADDITIONAL_MODULES lors d’un appel ultérieur à qt_deploy_runtime_dependencies().
Exemple
cmake_minimum_required(VERSION 3.16...3.22)
project(MyThings)
find_package(Qt6 6.3 REQUIRED COMPONENTS Core Qml)
qt_standard_project_setup()
qt_add_executable(MyApp main.cpp)
qt_add_qml_module(MyApp
URI Application
VERSION 1.0
QML_FILES main.qml MyThing.qml
)
# The following script must only be executed at install time
set(deploy_script "${CMAKE_CURRENT_BINARY_DIR}/deploy_MyApp.cmake")
file(GENERATE OUTPUT ${deploy_script} CONTENT "
include(\"${QT_DEPLOY_SUPPORT}\")
qt_deploy_qml_imports(
# Deploy QML modules used by MyApp
TARGET MyApp
# The found QML plugins are stored in the plugins_found variable
PLUGINS_FOUND plugins_found
# The QML modules will be deployed into a custom directory
QML_DIR \"myqmldir\"
# Qt QML modules will be skipped, only project-created QML modules will be deployed
NO_QT_IMPORTS
)
# Deploy application runtime dependencies and runtime dependencies
# of the found QML module plugins.
qt_deploy_runtime_dependencies(
EXECUTABLE $<TARGET_FILE:MyApp>
ADDITIONAL_MODULES \${plugins_found}
)
")
install(TARGETS MyApp)
install(SCRIPT ${deploy_script})Voir également qt_generate_deploy_qml_app_script(), qt_deploy_runtime_dependencies() et QT_DEPLOY_QML_DIR.
© 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.