デプロイメント

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 のようなツールでパッケージ化することができます。

©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。