qt_deploy_qml_imports
実行ファイルに必要なQMLモジュールのランタイムコンポーネントをデプロイします。
このコマンドはQt6
パッケージのQml
コンポーネントで定義されています:
find_package(Qt6 REQUIRED COMPONENTS Qml)
Qt が提供する他の CMake コマンドとは異なり、qt6_deploy_qml_imports
はデプロイスクリプトからのみ呼び出すことができます。Qt が提供する他のほとんどの CMake コマンドとは異なり、 はデプロイスクリプトからのみ呼び出すことができます。
警告 3.19 よりも低い CMake バージョンを使用している場合は、この関数を呼び出す前に、qt6_add_executable() にMANUAL_FINALIZATION
オプションを渡し、qt6_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モジュールを見つけることができません。qt6_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
ファイルとプラグインがデプロイされます。Qt が提供する QML モジュールのデプロイをスキップするには、NO_QT_IMPORTS
オプションを指定します。
デフォルトでは、インポートされた QML モジュールのランタイム部分は、macOS アプリバンドルターゲットの場合はResources/qml
ディレクトリに、その他のプラットフォームの場合は、ベースインストール位置の下にあるqml
ディレクトリにデプロイされます。macOS以外の場合は、QML_DIR
オプションを使って、このデフォルトの選択を上書きすることができます。
このコマンドは、デプロイするすべてのQMLプラグインのリストをPLUGINS_FOUND
オプションで指定された変数に格納します。これは、その後の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も参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。