
* stop magic number spam * forgot to remove avoid * Update .clang-format * yeet qt translations and unused image formats * also remove bearer and styles * remove another svg dll * create dmg on mac * forgot .app * delete folder after packing * skip runtime webkit and opengl * switch back to fixed qt setup * try installing the NDK * update discord rpc includes * enable discord in CI builds * copypaste lmao * windows doesn't have export * forgot the quotes * guess i'm not root * downgrade ubuntu * lets hope ubuntu 18 comes with android ndk * it doesn't * try to update libpng * script wasn't executable * downgrade android * typo * use qmake to enable discord * exit code 101 very funny qmake * its in defines not just true * can i use qmake like this? * add discord * exclude android from discord * android runs on linux after all
245 lines
9.3 KiB
YAML
245 lines
9.3 KiB
YAML
name: CI build
|
|
|
|
on: [push]
|
|
|
|
env:
|
|
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
version:
|
|
- 5.15.1
|
|
platform:
|
|
- gcc_64
|
|
- android
|
|
- msvc2019
|
|
- mingw81_32
|
|
- clang_64
|
|
|
|
include:
|
|
- platform: gcc_64
|
|
os: ubuntu-latest
|
|
- platform: android
|
|
os: ubuntu-latest
|
|
- platform: msvc2019
|
|
os: windows-2019
|
|
- platform: mingw81_32
|
|
os: windows-latest
|
|
- platform: clang_64
|
|
os: macos-latest
|
|
|
|
runs-on: ${{matrix.os}}
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
with:
|
|
submodules: recursive
|
|
- uses: actions/setup-python@master
|
|
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@master
|
|
|
|
- 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
|
|
ln -sfn $ANDROID_SDK_ROOT/ndk/21.4.7075529 $ANDROID_NDK_ROOT
|
|
|
|
- uses: Skycoder42/action-setup-qt@master
|
|
id: qt
|
|
with:
|
|
version: 5.15.1
|
|
platform: ${{matrix.platform}}
|
|
|
|
- name: Install QtApng
|
|
run: |
|
|
git clone https://github.com/Skycoder42/QtApng.git
|
|
cd QtApng
|
|
cd src/3rdparty
|
|
chmod +x get_libs.sh
|
|
./get_libs.sh 1.2.12 1.6.37
|
|
cd ../..
|
|
qmake CONFIG+=install_ok 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
|
|
|
|
- name: Create bin folder
|
|
run: |
|
|
mkdir bin
|
|
|
|
- name: Install Windows Discord RPC
|
|
if: contains(matrix.os, 'windows')
|
|
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/
|
|
|
|
- name: Install Linux Discord RPC
|
|
if: matrix.platform == 'gcc_64'
|
|
run: |
|
|
curl -L https://github.com/discordapp/discord-rpc/releases/download/v3.4.0/discord-rpc-linux.zip -o discord_rpc.zip
|
|
unzip discord_rpc.zip
|
|
cp ./discord-rpc/linux-dynamic/lib/libdiscord-rpc.so ./lib/
|
|
cp ./discord-rpc/linux-dynamic/lib/libdiscord-rpc.so ./bin/
|
|
cp ./discord-rpc/linux-dynamic/include/discord*.h ./include/
|
|
|
|
- name: Install Mac Discord RPC
|
|
if: matrix.os == 'macos-latest'
|
|
run: |
|
|
curl -L https://github.com/discordapp/discord-rpc/releases/download/v3.4.0/discord-rpc-osx.zip -o discord_rpc.zip
|
|
unzip discord_rpc.zip
|
|
cp ./discord-rpc/osx-dynamic/lib/libdiscord-rpc.dylib ./lib/
|
|
cp ./discord-rpc/osx-dynamic/lib/libdiscord-rpc.dylib ./bin/
|
|
cp ./discord-rpc/osx-dynamic/include/discord*.h ./include/
|
|
|
|
- name: Install Windows BASS
|
|
if: contains(matrix.os, 'windows')
|
|
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/
|
|
|
|
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/
|
|
|
|
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/
|
|
|
|
- name: Install Linux BASS
|
|
if: matrix.platform == 'gcc_64'
|
|
run: |
|
|
curl http://www.un4seen.com/files/bass24-linux.zip -o bass.zip
|
|
unzip -d bass -o bass.zip
|
|
cp ./bass/x64/libbass.so ./lib/
|
|
cp ./bass/x64/libbass.so ./bin/
|
|
|
|
curl http://www.un4seen.com/files/bassmidi24-linux.zip -o bassmidi.zip
|
|
unzip -d bass -o bassmidi.zip
|
|
cp ./bass/x64/libbassmidi.so ./lib/
|
|
cp ./bass/x64/libbassmidi.so ./bin/
|
|
|
|
curl http://www.un4seen.com/files/bassopus24-linux.zip -o bassopus.zip
|
|
unzip -d bass -o bassopus.zip
|
|
cp ./bass/x64/libbassopus.so ./lib/
|
|
cp ./bass/x64/libbassopus.so ./bin/
|
|
|
|
- name: Install Mac BASS
|
|
if: matrix.os == 'macos-latest'
|
|
run: |
|
|
curl http://www.un4seen.com/files/bass24-osx.zip -o bass.zip
|
|
unzip -d bass -o bass.zip
|
|
cp ./bass/libbass.dylib ./lib/
|
|
cp ./bass/libbass.dylib ./bin/
|
|
|
|
curl http://www.un4seen.com/files/bassmidi24-osx.zip -o bassmidi.zip
|
|
unzip -d bass -o bassmidi.zip
|
|
cp ./bass/libbassmidi.dylib ./lib/
|
|
cp ./bass/libbassmidi.dylib ./bin/
|
|
|
|
curl http://www.un4seen.com/files/bassopus24-osx.zip -o bassopus.zip
|
|
unzip -d bass -o bassopus.zip
|
|
cp ./bass/libbassopus.dylib ./lib/
|
|
cp ./bass/libbassopus.dylib ./bin/
|
|
|
|
- name: Install Android BASS
|
|
if: matrix.platform == 'android'
|
|
run: |
|
|
mkdir ./android/libs/
|
|
mkdir ./android/libs/armeabi-v7a/
|
|
curl http://www.un4seen.com/files/bass24-android.zip -o bass.zip
|
|
unzip -d bass -o bass.zip
|
|
cp ./bass/libs/armeabi-v7a/libbass.so ./lib/
|
|
cp ./bass/libs/armeabi-v7a/libbass.so ./android/libs/armeabi-v7a/
|
|
|
|
curl http://www.un4seen.com/files/bassmidi24-android.zip -o bassmidi.zip
|
|
unzip -d bass -o bassmidi.zip
|
|
cp ./bass/libs/armeabi-v7a/libbassmidi.so ./lib/
|
|
cp ./bass/libs/armeabi-v7a/libbassmidi.so ./android/libs/armeabi-v7a/
|
|
|
|
curl http://www.un4seen.com/files/bassopus24-android.zip -o bassopus.zip
|
|
unzip -d bass -o bassopus.zip
|
|
cp ./bass/libs/armeabi-v7a/libbassopus.so ./lib/
|
|
cp ./bass/libs/armeabi-v7a/libbassopus.so ./android/libs/armeabi-v7a/
|
|
|
|
- name: qmake
|
|
run: |
|
|
qmake DEFINES+=DISCORD CONFIG+=install_ok QT_PLATFORM=${{matrix.platform}} ANDROID_ABIS="armeabi-v7a"
|
|
|
|
- name: build
|
|
run: |
|
|
${{steps.qt.outputs.make}}
|
|
|
|
- name: Deploy Windows
|
|
if: contains(matrix.os, 'windows')
|
|
working-directory: ${{github.workspace}}/bin/
|
|
shell: bash
|
|
run: |
|
|
windeployqt --no-quick-import --no-translations --no-virtualkeyboard --no-compiler-runtime --no-webkit2 --no-opengl-sw .
|
|
cp ../QtApng/plugins/imageformats/qapng.dll ./imageformats/
|
|
rm ./imageformats/qtiff.dll
|
|
rm ./imageformats/qjpeg.dll
|
|
rm ./imageformats/qicns.dll
|
|
rm ./imageformats/qico.dll
|
|
rm ./imageformats/qsvg.dll
|
|
rm ./imageformats/qtga.dll
|
|
rm ./imageformats/qwbmp.dll
|
|
rm ./Qt5Svg.dll
|
|
rm -r iconengines
|
|
rm -r bearer
|
|
rm -r styles
|
|
|
|
- name: Deploy Mac
|
|
if: matrix.os == 'macos-latest'
|
|
working-directory: ${{github.workspace}}/bin/
|
|
shell: bash
|
|
run: |
|
|
macdeployqt Attorney_Online.app
|
|
cp ../QtApng/plugins/imageformats/libqapng.dylib ./Attorney_Online.app/Contents/PlugIns/imageformats/
|
|
mv *.dylib ./Attorney_Online.app/Contents/Frameworks
|
|
install_name_tool -change @loader_path/libbass.dylib @rpath/libbass.dylib ./Attorney_Online.app/Contents/MacOS/Attorney_Online
|
|
install_name_tool -change @loader_path/libbassopus.dylib @rpath/libbassopus.dylib ./Attorney_Online.app/Contents/MacOS/Attorney_Online
|
|
install_name_tool -change @loader_path/libbassmidi.dylib @rpath/libbassmidi.dylib ./Attorney_Online.app/Contents/MacOS/Attorney_Online
|
|
install_name_tool -change @loader_path/libdiscord-rpc.dylib @rpath/libdiscord-rpc.dylib ./Attorney_Online.app/Contents/MacOS/Attorney_Online
|
|
install_name_tool -change @loader_path/libqapng.dylib @rpath/libqapng.dylib ./Attorney_Online.app/Contents/MacOS/Attorney_Online
|
|
hdiutil create -volname "Attorney_Online" -srcfolder "./Attorney_Online.app" -ov -format UDZO "Attorney_Online.dmg"
|
|
rm -r ./Attorney_Online.app/
|
|
|
|
- name: Deploy Android
|
|
if: matrix.platform == 'android'
|
|
working-directory: ${{github.workspace}}/
|
|
shell: bash
|
|
run: |
|
|
mkdir ./build/libs/
|
|
mkdir ./build/libs/armeabi-v7a/
|
|
mv ./bin/*.so ./build/libs/armeabi-v7a/
|
|
cp ./QtApng/plugins/imageformats/libplugins_imageformats_qapng_armeabi-v7a.so ./build/libs/armeabi-v7a/
|
|
androiddeployqt --input android-Attorney_Online-deployment-settings.json --output ./build/ --apk ./bin/AttorneyOnline.apk
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@master
|
|
with:
|
|
name: Attorney_Online-${{matrix.platform}}
|
|
path: ${{github.workspace}}/bin/
|