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()も参照して ください。

© 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.