qt_deploy_qml_imports
Stellt die Laufzeitkomponenten der QML-Module bereit, die von einer ausführbaren Datei benötigt werden.
Der Befehl ist in der Komponente „ Qml “ des Pakets „ Qt6 “ definiert, das wie folgt geladen werden kann:
find_package(Qt6 REQUIRED COMPONENTS Qml)Im Gegensatz zu den meisten anderen von Qt bereitgestellten CMake-Befehlen kann „ qt_deploy_qml_imports “ nur aus einem Deployment-Skript heraus aufgerufen werden. Er kann nicht direkt vom Projekt aus aufgerufen werden.
Warnung: Wenn Sie eine CMake-Version unter 3.19 verwenden, stellen Sie sicher, dass Sie die Option ` MANUAL_FINALIZATION ` an `qt_add_executable()` übergeben und anschließend `qt_finalize_target() ` aufrufen, bevor Sie diese Funktion aufrufen.
Übersicht
qt_deploy_qml_imports(
TARGET target
[QML_DIR qml_dir]
[PLUGINS_FOUND var_name]
[NO_QT_IMPORTS]
)Beschreibung
Hinweis: Dieser Befehl muss in der Regel nicht direkt aufgerufen werden. Er wird intern von anderen übergeordneten Befehlen verwendet, kann jedoch für Projekte nützlich sein, die eine individuellere Bereitstellungslogik implementieren möchten.
Bei der Installation einer Anwendung, die QML verwendet, kann es nicht trivial sein, herauszufinden, welche QML-Module und welche Teile dieser QML-Module ebenfalls installiert werden müssen. Da QML-Plugins nicht direkt mit der ausführbaren Datei einer Anwendung verknüpft sind, findet qt_deploy_runtime_dependencies() diese QML-Module nicht. Der Befehl ` qt_deploy_qml_imports() ` stellt die erforderliche Logik bereit, die ` qt_deploy_runtime_dependencies() ` ergänzt und die Laufzeitkomponenten aller von der Anwendung importierten QML-Module bereitstellt.
Die Option „ TARGET “ ist obligatorisch und sollte eine „ target “ angeben, bei der es sich um eine ausführbare Datei (unter macOS sollte es sich um ein App-Bundle handeln) sowie um ein QML-Modul handelt. Alle QML-Quellen, die über `qt_add_qml_module()` oder `qt_target_qml_sources()` zum „ target “ hinzugefügt wurden, werden rekursiv nach QML-Importen durchsucht. Die Option „ NO_IMPORT_SCAN “ darf nicht an ` qt_add_qml_module()` übergeben worden sein. Die ` qmldir `-Dateien und Plugins aus den importierten QML-Modulen werden bereitgestellt. Mit der Option „ NO_QT_IMPORTS “ kann die Bereitstellung von QML-Modulen, die von Qt bereitgestellt werden, übersprungen werden.
Standardmäßig werden die Laufzeitkomponenten importierter QML-Module für ein macOS-App-Bundle-Ziel im Verzeichnis „ Resources/qml “ und für andere Plattformen im Verzeichnis „ qml “ unterhalb des Basisinstallationsverzeichnisses bereitgestellt. Für andere Plattformen als macOS kann die Option „ QML_DIR “ verwendet werden, um diese Standardauswahl zu überschreiben.
Der Befehl speichert eine Liste aller von ihm bereitgestellten QML-Plugins in der Variablen, deren Name durch die Option „ PLUGINS_FOUND “ angegeben wird, sofern diese angegeben ist. Diese wird häufig als Argument „ ADDITIONAL_MODULES “ bei einem nachfolgenden Aufruf von `qt_deploy_runtime_dependencies()` übergeben.
Beispiel
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})Siehe auch qt_generate_deploy_qml_app_script(), qt_deploy_runtime_dependencies() und 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.