Windows CI (#920)

* Update build.yml

* forgot to change the other target

* make

* typo

* make

* deall

* msvc

* Fix Windows and Android CI (#928)

* fix CI

* cache qt

* Update zlib

---------

Co-authored-by: lambdcalculus <64238778+lambdcalculus@users.noreply.github.com>
This commit is contained in:
stonedDiscord 2024-02-10 09:06:45 +01:00 committed by GitHub
parent 1899f4e1ba
commit ff577255d3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 66 additions and 35 deletions

View File

@ -11,7 +11,7 @@ jobs:
fail-fast: false
matrix:
version:
- 5.15.1
- 5.15.2
platform:
- gcc_64
- android
@ -22,14 +22,30 @@ jobs:
include:
- platform: gcc_64
os: ubuntu-latest
target: desktop
make: make
- platform: android
os: ubuntu-20.04
target: android
make: make
- platform: msvc2019
os: windows-2019
target: desktop
make: nmake
- platform: mingw81_32
os: windows-latest
target: desktop
arch: win32_mingw81
tools: 'tools_mingw,qt.tools.win32_mingw810'
make: mingw32-make
- platform: clang_64
os: macos-latest
target: desktop
make: make
runs-on: ${{matrix.os}}
steps:
@ -40,13 +56,6 @@ jobs:
with:
python-version: '3.10'
- name: actions/cache qt
uses: actions/cache@master
id: cache
with:
path: qt/${{matrix.version}}/${{matrix.platform}}
key: qt-${{matrix.version}}-${{matrix.platform}}
- name: Add msbuild to PATH
if: matrix.platform == 'msvc2019'
uses: microsoft/setup-msbuild@main
@ -54,19 +63,35 @@ jobs:
- name: Downgrade Android NDK
if: matrix.platform == 'android'
run: |
ANDROID_ROOT=/usr/local/lib/android
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk-bundle
SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
echo "y" | $SDKMANAGER "platforms;android-24"
ln -sfn $ANDROID_SDK_ROOT/ndk/21.4.7075529 $ANDROID_NDK_ROOT
ANDROID_ROOT=/usr/local/lib/android
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk-bundle
SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
echo "y" | $SDKMANAGER "platforms;android-24"
- uses: Skycoder42/action-setup-qt@master
# this is so stupid but i can't find anything else that works
rm -rf $ANDROID_HOME/ndk/25.2.9519653
ln -sf $ANDROID_HOME/ndk/21.4.7075529 $ANDROID_HOME/ndk/25.2.9519653
- uses: jurplel/install-qt-action@v3
id: qt
with:
version: ${{matrix.version}}
platform: ${{matrix.platform}}
target: ${{matrix.target}}
arch: ${{matrix.arch}}
tools: ${{matrix.tools}}
cache: true
cache-key-prefix: qt
- name: Add tools to PATH (MinGW)
if: matrix.platform == 'mingw81_32'
shell: bash
run: echo "$RUNNER_WORKSPACE/Qt/Tools/mingw810_32/bin" >> $GITHUB_PATH
- name: Configure MSVC (Windows)
if: contains(matrix.platform, 'msvc')
uses: ilammy/msvc-dev-cmd@v1
- name: Install QtApng
run: |
@ -74,21 +99,23 @@ jobs:
cd QtApng
cd src/3rdparty
chmod +x get_libs.sh
./get_libs.sh 1.3 1.6.37
./get_libs.sh 1.3.1 1.6.40
cd ../..
qmake CONFIG+=install_ok QMAKE_CXXFLAGS+="-fno-sized-deallocation" QT_PLATFORM=${{matrix.platform}}
${{steps.qt.outputs.make}} qmake_all
${{steps.qt.outputs.make}}
${{steps.qt.outputs.make}} INSTALL_ROOT="${{steps.qt.outputs.installdir}}" install
${{matrix.make}}
${{matrix.make}} INSTALL_ROOT="${Qt5_DIR}" install
- name: Install Windows Discord RPC
if: contains(matrix.os, 'windows')
env:
ARCH: ${{ matrix.platform == 'msvc2019' && '64' || '32'}}
shell: bash
run: |
curl -L https://github.com/discordapp/discord-rpc/releases/download/v3.4.0/discord-rpc-win.zip -o discord_rpc.zip
unzip discord_rpc.zip
cp ./discord-rpc/win32-dynamic/lib/discord-rpc.lib ./lib/
cp ./discord-rpc/win32-dynamic/bin/discord-rpc.dll ./bin/
cp ./discord-rpc/win32-dynamic/include/discord*.h ./include/
cp ./discord-rpc/win${ARCH}-dynamic/lib/discord-rpc.lib ./lib/
cp ./discord-rpc/win${ARCH}-dynamic/bin/discord-rpc.dll ./bin/
cp ./discord-rpc/win${ARCH}-dynamic/include/discord*.h ./include/
- name: Install Linux Discord RPC
if: matrix.platform == 'gcc_64'
@ -110,21 +137,24 @@ jobs:
- name: Install Windows BASS
if: contains(matrix.os, 'windows')
env:
ARCH: ${{ matrix.platform == 'msvc2019' && '/x64/' || ''}}
shell: bash
run: |
curl http://www.un4seen.com/files/bass24.zip -o bass.zip
unzip -d bass -o bass.zip
cp ./bass/c/bass.lib ./lib/
cp ./bass/bass.dll ./bin/
cp ./bass/c/${ARCH}bass.lib ./lib/
cp ./bass/${ARCH}bass.dll ./bin/
curl http://www.un4seen.com/files/bassmidi24.zip -o bassmidi.zip
unzip -d bass -o bassmidi.zip
cp ./bass/c/bassmidi.lib ./lib/
cp ./bass/bassmidi.dll ./bin/
cp ./bass/c/${ARCH}bassmidi.lib ./lib/
cp ./bass/${ARCH}bassmidi.dll ./bin/
curl http://www.un4seen.com/files/bassopus24.zip -o bassopus.zip
unzip -d bass -o bassopus.zip
cp ./bass/c/bassopus.lib ./lib/
cp ./bass/bassopus.dll ./bin/
cp ./bass/c/${ARCH}bassopus.lib ./lib/
cp ./bass/${ARCH}bassopus.dll ./bin/
- name: Install Linux BASS
if: matrix.platform == 'gcc_64'
@ -196,7 +226,7 @@ jobs:
- name: build
run: |
${{steps.qt.outputs.make}}
${{matrix.make}}
- name: Deploy Windows
if: contains(matrix.os, 'windows')
@ -222,9 +252,9 @@ jobs:
working-directory: ${{github.workspace}}/bin/
shell: bash
run: |
cp D:/a/AO2-Client/AO2-Client/.cache/qt/Tools/mingw810_32/bin/libgcc_s_dw2-1.dll .
cp D:/a/AO2-Client/AO2-Client/.cache/qt/Tools/mingw810_32/bin/libstdc++-6.dll .
cp D:/a/AO2-Client/AO2-Client/.cache/qt/Tools/mingw810_32/bin/libwinpthread-1.dll .
cp $RUNNER_WORKSPACE/Qt/Tools/mingw810_32/bin/libgcc_s_dw2-1.dll .
cp $RUNNER_WORKSPACE/Qt/Tools/mingw810_32/bin/libstdc++-6.dll .
cp $RUNNER_WORKSPACE/Qt/Tools/mingw810_32/bin/libwinpthread-1.dll .
- name: Deploy Linux
if: matrix.platform == 'gcc_64'

View File

@ -17,6 +17,7 @@ FORMS += $$files($$PWD/resource/ui/*.ui)
LIBS += -L$$PWD/lib
QMAKE_LFLAGS += -Wl,-rpath,"'\$$ORIGIN/lib'"
QMAKE_CXXFLAGS += "-fno-sized-deallocation"
# Uncomment for verbose network logging
# DEFINES += DEBUG_NETWORK