qt_query_qml_module
Récupérer des informations sur un module QML.
La commande est définie dans le composant « Qml » du paquet « Qt6 », qui peut être chargé comme suit :
find_package(Qt6 REQUIRED COMPONENTS Qml)Cette commande a été introduite dans Qt 6.3.
Syntaxe
qt_query_qml_module(
target
[URI uri_var]
[VERSION version_var]
[PLUGIN_TARGET plugin_target_var]
[TARGET_PATH target_path_var]
[MODULE_RESOURCE_PATH module_resource_path_var]
[QMLDIR qmldir_var]
[TYPEINFO typeinfo_var]
[QML_FILES qml_files_var]
[QML_FILES_DEPLOY_PATHS qml_files_deploy_paths_var]
[QML_FILES_PREFIX_OVERRIDES qml_files_prefix_overrides_var]
[RESOURCES resources_var]
[RESOURCES_DEPLOY_PATHS resources_deploy_paths_var]
[RESOURCES_PREFIX_OVERRIDES resources_prefix_overrides_var]
)Si les commandes sans version sont désactivées, utilisez plutôt qt6_query_qml_module(). Elle prend en charge le même ensemble d’arguments que cette commande.
Description
Cette commande permet d’obtenir des informations sur un module QML target. Ce module target doit avoir été préalablement créé ou transmis lors d’un appel antérieur à qt_add_qml_module(). Le module target ne peut pas être une cible importée.
target Les informations fournies par cette commande permettent à l’appelant de déployer toutes les parties d’un même module QML. Le projet doit installer l’ target et la cible de plugin associée (si le module en possède une et qu’elle est distincte de l’ sous-jacente) à l’aide de la commande standard install(TARGETS). Tout le reste peut être déployé avec install(FILES).
Arguments
Chacun des arguments facultatifs spécifie le nom d’une variable dans laquelle stocker la propriété correspondante du module QML.
URI et ` VERSION ` fournissent respectivement l’URI et la version du module.
PLUGIN_TARGET peut être utilisé pour obtenir le nom de la cible du plugin pour le module QML. Tous les modules QML ne disposent pas d’un plugin ; la valeur renvoyée pour cette option peut donc être une chaîne vide. Si le module QML ne dispose pas d’une cible de support distincte, alors target correspondra à la cible du plugin.
TARGET_PATH Il s'agit de l'URI dont les points (.) ont été remplacés par des barres obliques (/). Il représente le chemin d'accès sous le répertoire d'installation de base du module QML où le fichier d'qmldir ation (et éventuellement d'autres) de ce module QML doit être déployé. Le répertoire d'installation du module QML sert de chemin d'importation QML où le moteur QML recherchera les modules QML. Le répertoire d'installation de base par défaut des modules QML utilisé par la fonction `qt_generate_deploy_qml_app_script() ` est ` qml`. Un projet utilisant un script de déploiement peut recourir à la variable d'environnement `QT_DEPLOY_QML_DIR` plutôt que de coder en dur cet emplacement (voir également `QT_DEPLOY_PREFIX`).
MODULE_RESOURCE_PATH fournit le chemin d’accès aux ressources sous lequel se trouvent les fichiers compilés du module QML. Il est formé à partir de la valeur de ` RESOURCE_PREFIX ` de la fonction ` qt_add_qml_module()`, concaténée avec ` TARGET_PATH` du module. La valeur interrogée ne doit pas être utilisée pour le déploiement, mais peut s’avérer utile pour faire correspondre les chemins d’accès aux ressources avec les emplacements du système de fichiers, si nécessaire.
QMLDIR Fournit le chemin d’accès au fichier ` qmldir `. Lors du déploiement du module QML, ce fichier doit être copié vers le chemin cible. Dans un script de déploiement, cet emplacement peut être obtenu à l’aide de ` ${QT_DEPLOY_PREFIX}/${QT_DEPLOY_QML_DIR}`.
TYPEINFO fournit le chemin d'accès au fichier typeinfo du module, s'il en possède un. Il s'agira d'une chaîne vide si le module ne dispose pas de fichier typeinfo. Le fichier typeinfo doit être déployé au même chemin d'accès que le fichier qmldir.
QML_FILES Fournit une liste de tous les fichiers ajoutés au module QML via l’une des méthodes suivantes :
- En tant qu’arguments `
QML_FILES` dans ` qt_add_qml_module()`. - En tant qu’arguments «
FILES» dans la fonction qt_target_qml_sources().
Tous les fichiers seront enregistrés avec leurs chemins d’accès absolus.
QML_FILES_DEPLOY_PATHS fournit une liste comportant exactement le même nombre d’éléments que QML_FILES. Chaque élément de la liste QML_FILES_DEPLOY_PATHS correspond au chemin situé sous le chemin cible où l’élément correspondant de QML_FILES doit être déployé. Les chemins dans QML_FILES_DEPLOY_PATHS incluent le nom du fichier, car celui-ci peut différer du nom du fichier dans QML_FILES en raison de l’utilisation d’alias de ressources (voir QT_RESOURCE_ALIAS).
Les entrées de QML_FILES_DEPLOY_PATHS peuvent également être une chaîne vide. Tout fichier ajouté à l’aide de qt_target_qml_sources() avec un pré PREFIX e personnalisé n’aura pas de chemin de déploiement, car l’utilisation d’un pré e personnalisé signifie généralement que le fichier se trouve en dehors du chemin cible du module QML.
QML_FILES_PREFIX_OVERRIDES fournit une autre liste comportant exactement le même nombre d’éléments que QML_FILES. Lorsqu’un fichier a été ajouté avec un préfixe personnalisé comme décrit dans le paragraphe précédent, l’entrée correspondante dans la liste QML_FILES_PREFIX_OVERRIDES contiendra le préfixe personnalisé utilisé. Pour tous les autres fichiers, leurs entrées dans la liste seront une chaîne vide.
Remarque : dans un cas particulier, s’il n’y a qu’un seul fichier dans la liste ` QML_FILES `, alors ` QML_FILES_DEPLOY_PATHS ` ou ` QML_FILES_PREFIX_OVERRIDES ` peut être une chaîne vide selon que ce fichier possède ou non un préfixe personnalisé. En effet, la manière dont CMake représente les listes et les chaînes rend impossible la distinction entre une chaîne vide et une liste comportant un seul élément vide.
Les options RESOURCES, RESOURCES_DEPLOY_PATHS et RESOURCES_PREFIX_OVERRIDES sont analogues à celles de QML_FILES évoquées plus haut. RESOURCES fournit une liste de tous les fichiers ajoutés au module QML en tant qu'arguments RESOURCES de qt_add_qml_module() ou de qt_target_qml_sources(). Tous les chemins d'accès seront absolus. La signification et l'utilisation de RESOURCES_DEPLOY_PATHS et RESOURCES_PREFIX_OVERRIDES suivent respectivement les mêmes schémas que QML_FILES_DEPLOY_PATHS et QML_FILES_PREFIX_OVERRIDES.
Exemple
cmake_minimum_required(VERSION 3.16...3.22)
project(MyThings)
find_package(Qt6 6.3 REQUIRED COMPONENTS Core Qml)
set(module_name "MyThings")
qt_add_qml_module(${module_name}
URI My.Things
VERSION 1.3
RESOURCE_PREFIX org.mycompany/imports
QML_FILES
First.qml
Second.qml
RESOURCES
Third.txt
)
qt_query_qml_module(${module_name}
URI module_uri
VERSION module_version
PLUGIN_TARGET module_plugin_target
TARGET_PATH module_target_path
QMLDIR module_qmldir
TYPEINFO module_typeinfo
QML_FILES module_qml_files
QML_FILES_DEPLOY_PATHS qml_files_deploy_paths
RESOURCES module_resources
RESOURCES_DEPLOY_PATHS resources_deploy_paths
)
message("My QML module URI is: ${module_uri}")
message("My QML module version is: ${module_version}")
# Install the QML module backing library
set(staging_prefix "staging")
install(TARGETS ${module_name}
ARCHIVE DESTINATION "${staging_prefix}/${CMAKE_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${staging_prefix}/${CMAKE_INSTALL_LIBDIR}"
RUNTIME DESTINATION "${staging_prefix}/${CMAKE_INSTALL_BINDIR}"
)
set(module_dir "${staging_prefix}/qml/${module_target_path}")
# Install the QML module runtime loadable plugin
install(TARGETS "${module_plugin_target}"
LIBRARY DESTINATION "${module_dir}"
RUNTIME DESTINATION "${module_dir}"
)
# Install the QML module meta information.
install(FILES "${module_qmldir}" DESTINATION "${module_dir}")
install(FILES "${module_typeinfo}" DESTINATION "${module_dir}")
# Install QML files, possibly renamed.
list(LENGTH module_qml_files num_files)
math(EXPR last_index "${num_files} - 1")
foreach(i RANGE 0 ${last_index})
list(GET module_qml_files ${i} src_file)
list(GET qml_files_deploy_paths ${i} deploy_path)
get_filename_component(dst_name "${deploy_path}" NAME)
get_filename_component(dest_dir "${deploy_path}" DIRECTORY)
install(FILES "${src_file}" DESTINATION "${module_dir}/${dest_dir}" RENAME "${dst_name}")
endforeach()
# Install resources, possibly renamed.
list(LENGTH module_resources num_files)
math(EXPR last_index "${num_files} - 1")
foreach(i RANGE 0 ${last_index})
list(GET module_resources ${i} src_file)
list(GET resources_deploy_paths ${i} deploy_path)
get_filename_component(dst_name "${deploy_path}" NAME)
get_filename_component(dest_dir "${deploy_path}" DIRECTORY)
install(FILES "${src_file}" DESTINATION "${module_dir}/${dest_dir}" RENAME "${dst_name}")
endforeach()© 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.