qt_query_qml_module
Récupère 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.
Synopsis
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 qt6_query_qml_module() à la place. Elle prend en charge le même ensemble d'arguments que cette commande.
Description de la commande
Cette commande est utilisée pour obtenir des informations sur un module QML target. Ce target doit avoir été créé par ou passé à un appel antérieur à qt_add_qml_module(). Le target ne peut pas être une cible importée.
Les informations fournies par cette commande permettent à l'appelant de déployer toutes les parties d'un module QML unique. Le projet doit installer la cible target et la cible de plugin associée (si le module en a une et qu'elle est séparée de la cible target) à l'aide de la commande standard install(TARGETS). Tout le reste peut être déployé avec install(FILES).
Arguments
Chacun des arguments optionnels 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 n'ayant pas de plugin, la valeur renvoyée pour cette option peut être une chaîne vide. Si le module QML n'a pas de cible d'appui séparée, alors target sera la même que la cible du plugin.
TARGET_PATH est le site URI, les points (.) étant remplacés par des barres obliques (/). Il représente le chemin sous le répertoire d'installation du module QML de base où le fichier qmldir de ce module QML (et éventuellement d'autres) doit être déployé. Le répertoire d'installation du module QML sert de chemin d'importation QML où le moteur QML cherchera les modules QML. Le répertoire d'installation du module QML de base par défaut utilisé par qt_generate_deploy_qml_app_script() est qml. Un projet utilisant un script de déploiement peut utiliser QT_DEPLOY_QML_DIR plutôt que de coder en dur cet emplacement (voir aussi QT_DEPLOY_PREFIX).
MODULE_RESOURCE_PATH fournit le chemin de ressources sous lequel les fichiers compilés du module QML peuvent être trouvés. Il est formé à partir du RESOURCE_PREFIX de qt_add_qml_module() concaténé avec le TARGET_PATH du module. La valeur demandée ne doit pas être utilisée pour le déploiement, mais peut être 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é dans le chemin cible. Dans un script de déploiement, cet emplacement peut être obtenu en utilisant ${QT_DEPLOY_PREFIX}/${QT_DEPLOY_QML_DIR}.
TYPEINFO fournit le chemin d'accès au fichier typeinfo du module, s'il en a un. Il s'agit d'une chaîne vide si le module n'a pas de fichier d'information sur les types. Le fichier typeinfo doit être déployé dans le même chemin que le fichier qmldir.
QML_FILES fournit une liste de tous les fichiers ajoutés au module QML par l'une des méthodes suivantes :
- Comme arguments
QML_FILESdans qt_add_qml_module(). - Comme arguments
FILESdans qt_target_qml_sources().
Tous les fichiers seront enregistrés avec des chemins absolus.
QML_FILES_DEPLOY_PATHS fournit une liste avec exactement le même nombre d'éléments que QML_FILES. Chaque élément de la liste QML_FILES_DEPLOY_PATHS est le chemin sous le chemin cible où l'élément correspondant de QML_FILES doit être déployé. Les chemins d'accès de QML_FILES_DEPLOY_PATHS incluent le nom du fichier, qui peut être différent de celui de 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é en utilisant qt_target_qml_sources() avec un PREFIX personnalisé n'aura pas de chemin de déploiement, puisque l'utilisation d'un préfixe 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 avec 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, son entrée correspondante dans la liste QML_FILES_PREFIX_OVERRIDES contiendra le préfixe personnalisé utilisé. Pour tous les autres fichiers, leur entrée dans la liste sera une chaîne vide.
Note : 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 a un préfixe personnalisé ou non. En effet, la façon dont CMake représente les listes et les chaînes signifie qu'il est impossible de faire la distinction entre une chaîne vide et une liste contenant un seul élément vide.
Les options RESOURCES, RESOURCES_DEPLOY_PATHS, et RESOURCES_PREFIX_OVERRIDES sont analogues à celles de QML_FILES discutées ci-dessus. RESOURCES fournit une liste de tous les fichiers ajoutés au module QML en tant qu'arguments RESOURCES à qt_add_qml_module() ou qt_target_qml_sources(). Tous les chemins seront absolus. La signification et l'utilisation de RESOURCES_DEPLOY_PATHS et RESOURCES_PREFIX_OVERRIDES suivent les mêmes modèles que QML_FILES_DEPLOY_PATHS et QML_FILES_PREFIX_OVERRIDES respectivement.
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.