qt_deploy_qml_imports
Despliega los componentes de tiempo de ejecución de los módulos QML que necesita un ejecutable.
El comando se define en el componente Qml del paquete Qt6, que puede cargarse de este modo:
find_package(Qt6 REQUIRED COMPONENTS Qml)
A diferencia de la mayoría de los otros comandos CMake proporcionados por Qt, qt6_deploy_qml_imports sólo puede ser llamado desde un script de despliegue. No puede ser llamado directamente por el proyecto.
Advertencia: Si estás usando una versión de CMake inferior a la 3.19, asegúrate de pasar la opción MANUAL_FINALIZATION a qt6_add_executable(), y luego llama a qt6_finalize_target() antes de llamar a esta función.
Sinopsis
qt_deploy_qml_imports(
TARGET target
[QML_DIR qml_dir]
[PLUGINS_FOUND var_name]
[NO_QT_IMPORTS]
)Descripción
Nota: Normalmente no es necesario llamar directamente a este comando. Es utilizado internamente por otros comandos de nivel superior, pero los proyectos que deseen implementar una lógica de despliegue más personalizada pueden encontrarlo útil.
Cuando se instala una aplicación que utiliza QML, puede no ser trivial averiguar qué módulos QML y qué partes de esos módulos QML deben instalarse también. Dado que los plugins QML no se enlazan directamente al ejecutable de una aplicación, qt_deploy_runtime_dependencies() no encontrará estos módulos QML. El comando qt6_deploy_qml_imports proporciona la lógica necesaria que complementa a qt_deploy_runtime_dependencies() y despliega las partes de tiempo de ejecución de todos los módulos QML importados por la aplicación.
La opción TARGET es obligatoria y debe especificar un target que sea un ejecutable (en macOS, debe ser un paquete de aplicaciones) y también un módulo QML. Todas las fuentes QML que se hayan añadido a target mediante qt_add_qml_module() o qt_target_qml_sources() se analizarán recursivamente en busca de importaciones QML. La opción NO_IMPORT_SCAN no debe haber sido dada a qt_add_qml_module(). Se desplegarán los archivos qmldir y los plugins de los módulos QML importados. La opción NO_QT_IMPORTS puede ser dada para omitir el despliegue de cualquier módulo QML proporcionado por Qt.
Por defecto, las partes de tiempo de ejecución de los módulos QML importados se desplegarán en el directorio Resources/qml para un objetivo de paquete de aplicaciones macOS, y en el directorio qml bajo la ubicación de instalación base para otras plataformas. Para el caso que no sea macOS, se puede utilizar la opción QML_DIR para anular esta elección predeterminada.
El comando almacenará una lista de todos los plugins QML que despliega en la variable nombrada por la opción PLUGINS_FOUND, si se proporciona. A menudo se pasa como argumento ADDITIONAL_MODULES en una llamada posterior a qt_deploy_runtime_dependencies().
Ejemplo
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})Ver también qt_generate_deploy_qml_app_script(), qt_deploy_runtime_dependencies(), y 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.