qt_generate_deploy_app_script
アプリケーションのデプロイスクリプトを生成します。
このコマンドはQt6
パッケージのCore
コンポーネントで定義されています:
find_package(Qt6 REQUIRED COMPONENTS Core)
このコマンドは Qt 6.3 で導入されました。
注意: このコマンドは現在 Windows、macOS、Linux でのみサポートされています。
概要
qt_generate_deploy_app_script( TARGET target OUTPUT_SCRIPT <var> [NO_TRANSLATIONS] [NO_COMPILER_RUNTIME] [NO_UNSUPPORTED_PLATFORM_ERROR] [DEPLOY_TOOL_OPTIONS ...] [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_app_script()
を使ってください。このコマンドと同じ引数セットをサポートしています。
説明
install(TARGETS)を使って実行可能なターゲットをインストールすると、ターゲットの実行ファイルだけがインストールされます(macOSのアプリバンドルは例外で、バンドル全体がコピーされます)。実行ファイルが依存する他のライブラリやプラグインは、自分で明示的にインストールする必要があります。qt_generate_deploy_app_script()
は、このプロセスを簡略化するための便利なコマンドです。このコマンドは、アプリケーションが Qt の推奨するインストールディレクトリ構造に従っていることを想定しています。この構造は、GNUInstallDirsによって決定される CMake のデフォルトインストールレイアウトに基づいています(macOS アプリバンドルは例外で、代わりに Apple の要件に従います)。
このコマンドはスクリプトを生成し、その名前はOUTPUT_SCRIPT
オプションで指定した変数に格納されます。このスクリプトは CMake 生成時にのみ書き込まれます。これは、install( TARGETS) を使用してアプリケーションのターゲットがインストールされた後に、install(SCRIPT)コマンドと共に使用されることを意図しています。
デプロイスクリプトは、標準のインストールレイアウトに適したオプションセットでqt_deploy_runtime_dependencies() を呼び出します。現在のところ、これは
- macOS ホスト上でビルドされた macOS アプリバンドル、
- Linux ホストでビルドされた Linux 実行ファイル、
- およびWindowsホスト上でビルドされたWindows実行ファイルにのみ実装されています。
Linuxホスト上でWindows実行ファイルをクロスビルドすることや、同様のシナリオは現在サポートされていません。このような場合にqt_generate_deploy_app_script()
を呼び出すと、NO_UNSUPPORTED_PLATFORM_ERROR
オプションが指定されていない限り、致命的なエラーになります。
macOS 以外のプラットフォームでは、Qt の翻訳が自動的にデプロイされます。この動作を禁止するには、NO_TRANSLATIONS
を指定してください。qt_deploy_translations() を使用して、カスタマイズした方法でトランスレーションをデプロイします。
Windows デスクトップアプリケーションの場合、コンパイラに必要なランタイムファイルもデフォルトでインストールされます。これを防ぐには、NO_COMPILER_RUNTIME
を指定してください。
Qt 6.7 以降では、DEPLOY_TOOL_OPTIONS
を使用して、基盤となるデプロイツールに追加のオプションを渡すことができます。これは、基盤となるデプロイツールが macdeployqt または windeployqt の場合にのみ効果があります。
QML アプリケーションをデプロイする場合は、代わりにqt_generate_deploy_qml_app_script() を使用してください。
カスタムデプロイスクリプトを生成するには、qt_generate_deploy_script を使用します。
オプションPRE_INCLUDE_REGEXES
,PRE_EXCLUDE_REGEXES
,POST_INCLUDE_REGEXES
,POST_EXCLUDE_REGEXES
,POST_INCLUDE_FILES
,POST_EXCLUDE_FILES
を指定すると、ランタイム依存のデプロイを制御できます。これらのオプションはすべてのプラットフォームに適用されるわけではなく、変更されずにqt_deploy_runtime_dependencies() に転送されます。
例
次の例は、アプリケーションをMyApp
にデプロイする方法を示しています。
cmake_minimum_required(VERSION 3.16...3.22) project(MyThings) find_package(Qt6 REQUIRED COMPONENTS Core) qt_standard_project_setup() qt_add_executable(MyApp main.cpp) install(TARGETS MyApp BUNDLE DESTINATION . RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) qt_generate_deploy_app_script( TARGET MyApp OUTPUT_SCRIPT deploy_script NO_UNSUPPORTED_PLATFORM_ERROR ) install(SCRIPT ${deploy_script})
次の例では、DEPLOY_TOOL_OPTIONS
パラメータを使用して、macdeployqt と windeployqt に異なるオプションを渡す方法を示します。
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_app_script( TARGET MyApp OUTPUT_SCRIPT deploy_script NO_UNSUPPORTED_PLATFORM_ERROR DEPLOY_TOOL_OPTIONS ${deploy_tool_options_arg} ) install(SCRIPT ${deploy_script})
qt_standard_project_setup(),qt_generate_deploy_script(),qt_generate_deploy_qml_app_script()も参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。