qt_generate_deploy_qml_app_script
QML アプリケーションのデプロイスクリプトを生成します。
このコマンドはQt6
パッケージのQml
コンポーネントで定義されています:
find_package(Qt6 REQUIRED COMPONENTS Qml)
このコマンドは Qt 6.3 で導入されました。
警告 CMakeのバージョンが3.19より低い場合は、この関数を呼び出す前に、qt6_add_executable()にMANUAL_FINALIZATION
オプションを渡し、qt6_finalize_target()を呼び出してください。
概要
qt_generate_deploy_qml_app_script( TARGET <target> OUTPUT_SCRIPT <var> [NO_UNSUPPORTED_PLATFORM_ERROR] [NO_TRANSLATIONS] [NO_COMPILER_RUNTIME] [DEPLOY_TOOL_OPTIONS ...] [DEPLOY_USER_QML_MODULES_ON_UNSUPPORTED_PLATFORM] [MACOS_BUNDLE_POST_BUILD] [PRE_INCLUDE_REGEXES regexes...] [PRE_EXCLUDE_REGEXES regexes...] [POST_INCLUDE_REGEXES regexes...] [POST_EXCLUDE_REGEXES regexes...] [POST_INCLUDE_FILES files...] [POST_EXCLUDE_FILES files...] )
バージョンレスコマンドが無効になっている場合は、代わりにqt6_generate_deploy_qml_app_script()
を使用してください。このコマンドと同じ引数セットをサポートしています。
説明
QMLモジュールでもある実行可能なターゲットをインストールする場合、ターゲット自体に加えて多くのものをデプロイする必要があります。プロジェクトの Qt ライブラリやその他のライブラリ、 Qt プラグイン、アプリケーションが使用するすべての QML モジュールのランタイム部分などもインストールする必要があるかもしれません。インストールされるレイアウトも、macOS のアプリバンドルでは他のプラットフォームと異なります。qt_generate_deploy_qml_app_script()
はこのプロセスを簡略化するための便利なコマンドで、非 QML アプリケーションのqt_generate_deploy_app_script()に似ています。
このコマンドは、アプリケーションがQtの推奨するインストールディレクトリ構造に従っていることを想定しています。この構造は、GNUInstallDirsによって決定されるCMakeのデフォルトインストールレイアウトに基づいています(macOSアプリバンドルは例外で、代わりにAppleの要件に従います)。QMLモジュールは、プラットフォームに適した場所にインストールされます。macOS バンドルでは、各 QML モジュールのqmldir
ファイルはResources/qml
以下の適切なサブディレクトリにインストールされ、モジュールのプラグイン(存在する場合)はPlugIns
にインストールされます。アプリバンドルは、ベースとなるインストール場所に直接インストールされるものとします(後述の「例」を参照)。その他のプラットフォームでは、qmldir
とモジュールのプラグインの両方が、qml
以下の適切なサブディレクトリにインストールされます。
qt_generate_deploy_qml_app_script()
はスクリプトを生成し、その名前は オプションで指定した変数に格納されます。このスクリプトは CMake 生成時にのみ書き込まれます。このスクリプトは、OUTPUT_SCRIPT
install( TARGETS) を使用してアプリケーションのターゲットがインストールされた後に、install(SCRIPT)コマンドと共に使用されることを意図しています。
デプロイスクリプトは、標準のインストールレイアウトに適したオプションセットでqt_deploy_qml_imports() を呼び出します。macOS アプリバンドルと Windows ターゲットの場合は、qt_deploy_runtime_dependencies() も呼び出します。
qt_deploy_runtime_dependencies
でサポートされていないプラットフォームに対してqt_generate_deploy_qml_app_script()
を呼び出すと、NO_UNSUPPORTED_PLATFORM_ERROR
オプションが与えられていない限り、致命的なエラーになります。このオプションが指定され、サポートされていないプラットフォーム用にプロジェクトがビルドされた場合、QMLモジュールも通常のランタイム依存ファイルもインストールされません。QMLモジュールが確実にインストールされるようにするには、NO_UNSUPPORTED_PLATFORM_ERROR
とDEPLOY_USER_QML_MODULES_ON_UNSUPPORTED_PLATFORM
の両方のオプションを指定します。後者のオプションを指定すると、プロジェクトの一部としてビルドされたQMLモジュールが確実にインストールされます。
MACOS_BUNDLE_POST_BUILD
オプションは、target
が macOS アプリバンドルである場合に、追加のステップを有効にします。ビルド後のルールが作成され、デプロイスクリプトを使用して、ビルドディレクトリからアプリケーションを直接実行できるように、インポートされた QML モジュールを十分にデプロイします(基本的に、qmldir
ファイルとプラグインへのシンボリックリンクのみ)。これは通常、アプリケーションの開発をサポートするために望ましいものです。MACOS_BUNDLE_POST_BUILD
は他のすべてのプラットフォームでは無視されます。
macOS 以外のプラットフォームでは、Qt の翻訳が自動的にデプロイされます。この動作を抑制するには、NO_TRANSLATIONS
を指定してください。qt_deploy_translations() を使用して、カスタマイズした方法でトランスレーションをデプロイします。
Windows デスクトップアプリケーションの場合、コンパイラに必要なランタイムファイルもデフォルトでインストールされます。これを防ぐには、NO_COMPILER_RUNTIME
を指定してください。
Qt 6.7 以降では、DEPLOY_TOOL_OPTIONS
を使用して、基盤となるデプロイツールに追加のオプションを渡すことができます。これは、基盤となるディプロイメント ツールが macdeployqt または windeployqt の場合にのみ効果があります。
PRE_INCLUDE_REGEXES
、PRE_EXCLUDE_REGEXES
、POST_INCLUDE_REGEXES
、POST_EXCLUDE_REGEXES
、POST_INCLUDE_FILES
、POST_EXCLUDE_FILES
のオプションを指定すると、ランタイム依存のデプロイメントを制御できます。これらのオプションはすべてのプラットフォームに適用されるわけではなく、そのままqt_deploy_runtime_dependencies() に転送されます。
QML 以外のアプリケーションをデプロイする場合は、代わりにqt_generate_deploy_app_script() を使用してください。同じターゲットに対してqt_generate_deploy_qml_app_script()
とqt_generate_deploy_app_script() の両方を呼び出すのはエラーです。
例
次の例は、QtQuick アプリをデプロイする方法を示しています。
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 ) install(TARGETS MyApp BUNDLE DESTINATION . RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) qt_generate_deploy_qml_app_script( TARGET MyApp OUTPUT_SCRIPT deploy_script MACOS_BUNDLE_POST_BUILD NO_UNSUPPORTED_PLATFORM_ERROR DEPLOY_USER_QML_MODULES_ON_UNSUPPORTED_PLATFORM ) install(SCRIPT ${deploy_script})
次の例では、基礎となるデプロイツールに追加のオプションを渡す方法を示します。
set(deploy_tool_options_arg "") if(APPLE) set(deploy_tool_options_arg --hardened-runtime) elseif(WIN32) set(deploy_tool_options_arg --no-compiler-runtime) endif() qt_generate_deploy_qml_app_script( ... DEPLOY_TOOL_OPTIONS ${deploy_tool_options_arg} ) install(SCRIPT ${deploy_script})
qt_standard_project_setup()およびqt_generate_deploy_app_script()も参照して ください。
© 2025 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.