このページでは

qt_deploy_qml_imports

実行ファイルに必要な QML モジュールのランタイムコンポーネントをデプロイします。

このコマンドは、Qt6 パッケージのQml コンポーネントに定義されており、次のように読み込むことができます:

find_package(Qt6 REQUIRED COMPONENTS Qml)

Qtが提供する他のほとんどのCMakeコマンドとは異なり、qt_deploy_qml_imports はデプロイスクリプトからのみ呼び出すことができます。プロジェクトから直接呼び出すことはできません。

警告: CMake バージョン 3.19 より前のバージョンを使用している場合は 、この関数を呼び出す前に、qt_add_executable() にMANUAL_FINALIZATION オプションを渡し、qt_finalize_target()を呼び出すようにしてください。

概要

qt_deploy_qml_imports(
    TARGET target
    [QML_DIR qml_dir]
    [PLUGINS_FOUND var_name]
    [NO_QT_IMPORTS]
)

説明

注: 通常、この コマンドを 直接呼び出す必要はありません。これは他の上位レベルのコマンドによって内部的に使用されますが、よりカスタマイズされたデプロイメントロジックを実装したいプロジェクトでは、このコマンドが役立つ場合があります。

QML を使用するアプリケーションをインストールする場合、どの QML モジュール、およびそれらの QML モジュールのどの部分を併せてインストールする必要があるかを特定するのは、容易ではない場合があります。 QML プラグインはアプリケーションの実行ファイルに直接リンクされていないため、qt_deploy_runtime_dependencies()ではこれらの QML モジュールを検出できません。qt_deploy_qml_imports() コマンドは、qt_deploy_runtime_dependencies()を補完する必要なロジックを提供し、アプリケーションによってインポートされるすべての QML モジュールのランタイム部分をデプロイします。

TARGET オプションは必須であり、実行可能ファイル(macOS ではアプリバンドル)であると同時に QML モジュールでもあるtarget を指定する必要があります。qt_add_qml_module()またはqt_target_qml_sources()を通じてtarget に追加されたすべての QML ソースは、QML インポートについて再帰的にスキャンされます。qt_add_qml_module() に対してNO_IMPORT_SCAN オプションが指定されていない必要があります。インポートされた QML モジュールに含まれるqmldir ファイルおよびプラグインがデプロイされます。NO_QT_IMPORTS オプションを指定することで、Qt が提供する QML モジュールのデプロイをスキップできます。

デフォルトでは、インポートされたQMLモジュールのランタイム部分は、macOSアプリバンドルターゲットの場合はResources/qml ディレクトリに、その他のプラットフォームの場合はベースインストール場所下のqml ディレクトリにデプロイされます。macOS以外の場合、QML_DIR オプションを使用してこのデフォルト設定を上書きできます。

このコマンドは、PLUGINS_FOUND オプションが指定されている場合、デプロイするすべてのQMLプラグインのリストを、そのオプションで指定された名前の変数に格納します。これは、多くの場合、後続のqt_deploy_runtime_dependencies()の呼び出しにおいて、ADDITIONAL_MODULES 引数として渡されます。

例

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})

関連項目: qt_generate_deploy_qml_app_script()、qt_deploy_runtime_dependencies()、および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.