デプロイメント

Qt の CMake デプロイメント API を使用して、デスクトップ用の Qt プロジェクトをデプロイします。この API は様々なターゲットプラットフォームをサポートしており、qt_generate_deploy_app_script() のドキュメントで確認できます。

デプロイプロセスは、プロジェクトがQt Widgets アプリケーションかQt Quick アプリケーションかによって異なります。Qt Quick アプリケーションだけをデプロイする場合でも、まずQt Widgets アプリケーションのデプロイについて読んで、プロセスを理解してください。

Qt Widgets アプリケーションのデプロイ

このセクションでは、単純な C++ Qt プロジェクトを例に、Qt Widgets アプリケーションをデプロイする方法を示します。

cmake_minimum_required(VERSION 3.16)

project(MyApp VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt6 REQUIRED COMPONENTS Core)
qt_standard_project_setup()

qt_add_executable(MyApp main.cpp)
target_link_libraries(MyApp PRIVATE Qt6::Core)

アプリケーションターゲットを適切な場所にインストールするように CMake に指示する必要があります。macOS では、バンドルは${CMAKE_INSTALL_PREFIX} に直接インストールされ、他のプラットフォームでは"bin" ディレクトリの下にインストールされます。

install(TARGETS MyApp
    BUNDLE  DESTINATION .
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

qt_standard_project_setup()は、CMakeのGNUInstallDirs.cmake 。これはCMAKE_INSTALL_BINDIR 変数を定義するものです。

また、デプロイスクリプトを生成する必要があります。デプロイメントスクリプトは、インストール時に実行されるCMakeコードです。このコードは実行時の依存関係を収集し、インストールディレクトリにコピーします。

qt_generate_deploy_app_script(
    TARGET MyApp
    OUTPUT_SCRIPT deploy_script
    NO_UNSUPPORTED_PLATFORM_ERROR
)
install(SCRIPT ${deploy_script})

qt_generate_deploy_app_script()コマンドは、ビルドディレクトリにデプロイスクリプトを生成します。生成されたスクリプトファイルのファイル名は、deploy_script 変数に格納されます。install(SCRIPT) 呼び出しは、インストール時にスクリプトを実行するように CMake に指示します。

このプロジェクトは、他の CMake ベースのプロジェクトと同様に、cmake --install . またはninja install を使用してインストールできます。インストール後、インストール・ディレクトリには、アプリケーションの実行に必要な共有ライブラリとアセットが含まれます。言い換えれば、インストールによって自己完結型のディレクトリが作成され、例えばcpack などでパッケージ化する準備が整います。

Qt Quick アプリケーションのデプロイ

Qt Quick プロジェクトをデプロイするには、デプロイスクリプトを生成する別のコマンドが必要です。その他の手順は、Qt Widgets アプリケーションのデプロイと同様です。

まず、Qt Quick アプリケーションを作成します。

cmake_minimum_required(VERSION 3.16)

project(MyApp VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt6 REQUIRED COMPONENTS Core)
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_app_ script() の代わりにqt_generate_deploy_qml_app_script() を呼び出します。

qt_generate_deploy_qml_app_script(
    TARGET MyApp
    OUTPUT_SCRIPT deploy_script
)
install(SCRIPT ${deploy_script})

インストール時に、QMLファイル、プロジェクトで使用されるQtの共有ライブラリやアセットを含むアプリケーションバイナリがデプロイされます。この場合も、出来上がったディレクトリは自己完結しており、cpack のようなツールでパッケージ化することができます。

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