ユーザ用ツール

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ハイハイスクールアドベンチャー_qt版 [2025/09/26 23:45] – [インストーラとパッケージ] arakiハイハイスクールアドベンチャー_qt版 [2025/10/01 05:02] (現在) – [環境非依存化] araki
行 507: 行 507:
  
 とりあえず、WindowsとLinux ((Ubuntu 24.04LTS, Ubuntu 25.04、Debian 12(ARM64)で確認))でのビルドが可能なことは確認しました。 とりあえず、WindowsとLinux ((Ubuntu 24.04LTS, Ubuntu 25.04、Debian 12(ARM64)で確認))でのビルドが可能なことは確認しました。
 +((なお、Apple系のデバイスは持ってないし買う気もないのでできるかどうかはどなたか試してください。))
  
 ==== Windows版 ==== ==== Windows版 ====
行 640: 行 641:
 deb形式のパッケージにまとめることを想定しています。 deb形式のパッケージにまとめることを想定しています。
  
-パッケージングするためには、仮想ルートフォルダの下にイメージをインストールします。+<del>パッケージングするためには、仮想ルートフォルダの下にイメージをインストールします。
  
 <code bash> <code bash>
行 673: 行 674:
 <code bash> <code bash>
 $ dpkg-deb --root-owner-group --build package-root qhhsadv_1.0.0_ubutu24.04.2_amd64.deb $ dpkg-deb --root-owner-group --build package-root qhhsadv_1.0.0_ubutu24.04.2_amd64.deb
 +</code></del>
 +
 +パッケージングでcontrolファイルを毎回作るの面倒くさいとAIにもちかけたら、CPackにすればいいじゃん、といわれました。
 +なにそれ?
 +
 +<code cmake>
 +if(UNIX AND NOT APPLE)
 +    # パッケージの基本情報
 +    set(CPACK_PACKAGE_NAME ${APP_NAME})
 +    set(CPACK_PACKAGE_VERSION ${APP_VERSION})
 +    set(CPACK_PACKAGE_CONTACT "wildtree@gmail.com")
 +
 +    # Debian パッケージ用のメタ情報
 +    set(CPACK_GENERATOR "DEB")
 +    set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Hiroyuki Araki") # 必須
 +    set(CPACK_DEBIAN_PACKAGE_SECTION "games")
 +    set(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt6core6 (>= 6.4.0), libc6 (>= 2.34), libqt6widget6 (>= 6.4.0)")
 +
 +    # アーキテクチャ指定(自動判定も可能)
 +    string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" DETECTED_ARCH)
 +
 +    if(DETECTED_ARCH STREQUAL "x86_64")
 +        set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
 +    elseif(DETECTED_ARCH STREQUAL "aarch64")
 +        set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm64")
 +    elseif(DETECTED_ARCH MATCHES "armv7")
 +        set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "armhf")
 +    else()
 +        set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${DETECTED_ARCH}") # fallback
 +    endif()
 +
 +    include(CPack)
 +endif()
 +</code>
 +
 +インストールターゲットとか特には必要としません。
 +パッケージの作成までは以下の手順になります。
 +
 +<code bash>
 +$ git clone https://github.com/wildtree/qhhsadv.git
 +$ cd qhhsadv
 +$ cmake -B build -DCMAKE_BUILD_TYPE=Release
 +$ cmake --build build --target all
 +$ cpack -G DEB -C Release --config build/CPackConfig.cmake
 </code> </code>
  
 インストールは dpkgでも aptでも好きなのでインストーラを走らせるだけです。 インストールは dpkgでも aptでも好きなのでインストーラを走らせるだけです。
 +カレントフォルダに qhhsadv_1.1.1_Linux.deb のようなファイルができます。
 +バージョン番号は、CMakeLists.txtの頭の方に書いてあります。
 +
 +<code cmake>
 +# Application basic information
 +set(APP_NAME "qhhsadv")
 +set(APP_VERSION_MAJOR "1")
 +set(APP_VERSION_MINOR "1")
 +set(APP_VERSION_PATCH "1")
 +set(APP_VERSION "${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}.${APP_VERSION_PATCH}")
 +</code>
  
 <code bash> <code bash>
行 697: 行 753:
 DEBIANのcontrol同様、Inno Setup には Setup.issという設定ファイルを作る必要があります。 DEBIANのcontrol同様、Inno Setup には Setup.issという設定ファイルを作る必要があります。
  
-<file ini setup.iss>+<file ini setup.iss.in>
 ; ハイハイスクールアドベンチャー インストーラ (Inno Setup) ; ハイハイスクールアドベンチャー インストーラ (Inno Setup)
  
 [Setup] [Setup]
 AppName=High High School Adventure Qt AppName=High High School Adventure Qt
-AppVersion=1.1.0+AppVersion=@APP_VERSION@
 AppPublisher=WildTreeJP AppPublisher=WildTreeJP
 DefaultDirName={commonpf}\QHHSAdv DefaultDirName={commonpf}\QHHSAdv
行 772: 行 828:
         TARGET qhhsadv POST_BUILD         TARGET qhhsadv POST_BUILD
         COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/installer         COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/installer
-        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/installer/setup.iss ${CMAKE_BINARY_DIR}/installer 
         COMMENT "Copying setup.iss..."         COMMENT "Copying setup.iss..."
     )     )
 +    configure_file(${CMAKE_SOURCE_DIR}/installer/setup.iss.in ${CMAKE_BINARY_DIR}/installer/setup.iss @ONLY)
 +
     # Inno Setup コンパイラを探す     # Inno Setup コンパイラを探す
  

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also, you acknowledge that you have read and understand our Privacy Policy. If you do not agree, please leave the website.

More information