From fdf574802972bc48ab9d1954a4868f73c3b1c139 Mon Sep 17 00:00:00 2001
From: Sefa Eyeoglu <contact@scrumplex.net>
Date: Mon, 16 May 2022 22:54:32 +0200
Subject: feat(actions): use Qt 6 on macOS and AppImage

Co-authored-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
---
 .github/workflows/build.yml | 57 +++++++++++++++++++++++++++++++--------------
 1 file changed, 39 insertions(+), 18 deletions(-)

(limited to '.github')

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4e52af4e..76a66739 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -16,20 +16,31 @@ jobs:
         include:
 
           - os: ubuntu-20.04
+            qt_ver: 5
 
           - os: ubuntu-20.04
             appimage: true
+            qt_ver: 6
+            qt_host: linux
+            qt_version: '6.3.1'
+            qt_modules: 'qt5compat qtimageformats'
 
           - os: windows-2022
             name: "Windows-i686"
             msystem: mingw32
+            qt_ver: 5
 
           - os: windows-2022
             name: "Windows-x86_64"
             msystem: mingw64
+            qt_ver: 5
 
           - os: macos-12
-            macosx_deployment_target: 10.13
+            macosx_deployment_target: 10.14
+            qt_ver: 6
+            qt_host: mac
+            qt_version: '6.3.1'
+            qt_modules: 'qt5compat qtimageformats'
 
     runs-on: ${{ matrix.os }}
 
@@ -63,7 +74,7 @@ jobs:
             cmake:p
             extra-cmake-modules:p
             ninja:p
-            qt5:p
+            qt${{ matrix.qt_ver }}:p
             ccache:p
             nsis:p
 
@@ -104,25 +115,32 @@ jobs:
           ver_short=`git rev-parse --short HEAD`
           echo "VERSION=$ver_short" >> $GITHUB_ENV
 
-      - name: Install Qt (macOS)
-        if: runner.os == 'macOS'
+      - name: Install Dependencies (Linux)
+        if: runner.os == 'Linux'
         run: |
-         brew update
-         brew install qt@5 ninja extra-cmake-modules
+          sudo apt-get -y update
+          sudo apt-get -y install ninja-build extra-cmake-modules
 
-      - name: Update Qt (AppImage)
-        if: runner.os == 'Linux' && matrix.appimage == true
+      - name: Install Dependencies (macOS)
+        if: runner.os == 'macOS'
         run: |
-         sudo add-apt-repository ppa:savoury1/qt-5-15
-         sudo add-apt-repository ppa:savoury1/kde-5-80
-         sudo add-apt-repository ppa:savoury1/gpg
-         sudo add-apt-repository ppa:savoury1/ffmpeg4
+          brew update
+          brew install ninja extra-cmake-modules
 
       - name: Install Qt (Linux)
-        if: runner.os == 'Linux'
+        if: runner.os == 'Linux' && matrix.appimage != true
         run: |
-          sudo apt-get -y update
-          sudo apt-get -y install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5core5a libqt5network5 libqt5gui5 ninja-build qt5-image-formats-plugins extra-cmake-modules
+          sudo apt-get -y install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5core5a libqt5network5 libqt5gui5 qt5-image-formats-plugins
+
+      - name: Install Qt (macOS and AppImage)
+        if: matrix.qt_ver == 6 && runner.os != 'Windows'
+        uses: jurplel/install-qt-action@v2
+        with:
+           version: ${{ matrix.qt_version }}
+           host: ${{ matrix.qt_host }}
+           target: 'desktop'
+           modules: ${{ matrix.qt_modules }}
+           aqtversion: ==2.1.*
 
       - name: Prepare AppImage (Linux)
         if: runner.os == 'Linux' && matrix.appimage == true
@@ -140,18 +158,18 @@ jobs:
       - name: Configure CMake (macOS)
         if: runner.os == 'macOS'
         run: |
-          cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DQt5_DIR=/usr/local/opt/qt@5 -DCMAKE_PREFIX_PATH=/usr/local/opt/qt@5 -DLauncher_BUILD_PLATFORM=macOS -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -G Ninja
+          cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DLauncher_BUILD_PLATFORM=macOS -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DLauncher_QT_VERSION_MAJOR=${{ matrix.qt_ver }} -G Ninja
 
       - name: Configure CMake (Windows)
         if: runner.os == 'Windows'
         shell: msys2 {0}
         run: |
-          cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DLauncher_BUILD_PLATFORM=${{ matrix.name }} -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -G Ninja
+          cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DLauncher_BUILD_PLATFORM=${{ matrix.name }} -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DLauncher_QT_VERSION_MAJOR=${{ matrix.qt_ver }} -G Ninja
 
       - name: Configure CMake (Linux)
         if: runner.os == 'Linux'
         run: |
-          cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DLauncher_BUILD_PLATFORM=Linux -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -G Ninja
+          cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DLauncher_BUILD_PLATFORM=Linux -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DLauncher_QT_VERSION_MAJOR=${{ matrix.qt_ver }} -G Ninja
 
       ##
       # BUILD
@@ -252,11 +270,14 @@ jobs:
           chmod +x linuxdeploy-*.AppImage
 
           mkdir -p ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/jvm/java-{8,17}-openjdk
+          mkdir -p ${{ env.INSTALL_APPIMAGE_DIR }}/usr/plugins/iconengines
 
           cp -r ${{ github.workspace }}/JREs/jre8/* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/jvm/java-8-openjdk
 
           cp -r ${{ github.workspace }}/JREs/jre17/* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/jvm/java-17-openjdk
 
+          cp -r /home/runner/work/PolyMC/Qt/${{ matrix.qt_version }}/gcc_64/plugins/iconengines/* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/plugins/iconengines
+
           LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib"
           LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/jvm/java-8-openjdk/lib/amd64/server"
           LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/jvm/java-8-openjdk/lib/amd64"
-- 
cgit