Hitsounds #630
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: | |
push: | |
branches: [master, aqtion, aqtion-alpha, sync/*] | |
pull_request: | |
branches: [master, aqtion, aqtion-alpha, sync/*] | |
env: | |
MESON_ARGS: >- | |
--auto-features=enabled | |
--fatal-meson-warnings | |
-Danticheat-server=true | |
-Davcodec=disabled | |
-Dclient-gtv=true | |
-Dpacketdup-hack=true | |
-Dtests=false | |
-Dvariable-fps=true | |
-Dwerror=false | |
-Daqtion-build=true | |
-Ddiscord-sdk=false | |
MESON_ARGS_WIN: >- | |
-Dsdl2=disabled | |
-Dwayland=disabled | |
-Dwrap_mode=forcefallback | |
-Dx11=disabled | |
MESON_ARGS_LINUX_WAYLAND: >- | |
-Dwindows-crash-dumps=disabled | |
-Dwrap_mode=nofallback | |
MESON_ARGS_LINUX_X11: >- | |
-Dwindows-crash-dumps=disabled | |
-Dwayland=disabled | |
-Dwrap_mode=nofallback | |
MESON_ARGS_MAC: >- | |
-Dwindows-crash-dumps=disabled | |
-Dwrap_mode=nofallback | |
-Dwayland=disabled | |
-Dx11=disabled | |
-Dicmp-errors=disabled | |
jobs: | |
mingw: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
#arch: ["i686", "x86_64"] | |
arch: ["x86_64"] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: subprojects/packagecache | |
key: ${{ hashFiles('subprojects/*.wrap') }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y gcc-mingw-w64 nasm python3-pip ninja-build | |
sudo python3 -m pip install meson | |
- name: Build | |
run: | | |
meson setup --cross-file=.ci/${{ matrix.arch }}-w64-mingw32.txt \ | |
${{ env.MESON_ARGS }} ${{ env.MESON_ARGS_WIN }} builddir | |
meson compile -vC builddir | |
- name: Generate Win Mingw archives | |
uses: actions/upload-artifact@v3 | |
with: | |
name: q2pro-mingw-${{ matrix.arch }} | |
path: | | |
builddir/q2pro.exe | |
builddir/q2proded.exe | |
builddir/gamex86_64.dll | |
msvc: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
#arch: ["x86", "x64"] | |
arch: ["x64"] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: subprojects/packagecache | |
key: ${{ hashFiles('subprojects/*.wrap') }} | |
- uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: ${{ matrix.arch }} | |
- uses: ilammy/setup-nasm@v1 | |
- name: Install dependencies | |
run: pip3 install --no-input meson ninja | |
- name: Build | |
run: | | |
meson setup ${{ env.MESON_ARGS }} ${{ env.MESON_ARGS_WIN }} builddir | |
meson compile -C builddir | |
- name: Generate Win MSVC archives | |
uses: actions/upload-artifact@v3 | |
with: | |
name: q2pro-msvc-${{ matrix.arch }} | |
path: | | |
builddir/q2pro.exe | |
builddir/q2proded.exe | |
builddir/gamex86_64.dll | |
linux64-x11: | |
runs-on: ubuntu-20.04 | |
#runs-on: [self-hosted, x86] | |
strategy: | |
matrix: | |
cc: [gcc, clang] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y python3 python3-pip libsdl2-dev libopenal-dev \ | |
libpng-dev libjpeg-dev zlib1g-dev mesa-common-dev \ | |
libcurl4-openssl-dev libx11-dev libxi-dev \ | |
libavcodec-dev libavformat-dev libavutil-dev \ | |
libswresample-dev libswscale-dev \ | |
uuid-dev patchelf | |
pip3 install meson ninja | |
- name: Build | |
run: | | |
meson setup ${{ env.MESON_ARGS }} ${{ env.MESON_ARGS_LINUX_X11 }} builddir | |
meson compile -C builddir | |
env: | |
CC: ${{ matrix.cc }} | |
- name: patchelf path to discord_game_sdk.so | |
run: | | |
patchelf --replace-needed /home/runner/work/q2pro/q2pro/extern/discord/lib/x86_64/discord_game_sdk.so ./discord_game_sdk.so builddir/q2pro | |
- name: Set binaries as executable | |
run: | | |
chmod +x builddir/q2pro* | |
- name: Generate Linux x64 archives | |
uses: actions/upload-artifact@v3 | |
with: | |
name: q2pro-lin-${{ matrix.cc }} | |
path: | | |
builddir/q2pro | |
builddir/q2proded | |
builddir/gamex86_64.so | |
linux64-wayland: | |
runs-on: ubuntu-22.04 | |
#runs-on: [self-hosted, x86] | |
strategy: | |
matrix: | |
cc: [gcc, clang] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y meson libsdl2-dev libopenal-dev \ | |
libpng-dev libjpeg-dev zlib1g-dev mesa-common-dev \ | |
libcurl4-openssl-dev libx11-dev libxi-dev \ | |
libwayland-dev wayland-protocols libdecor-0-dev \ | |
libavcodec-dev libavformat-dev libavutil-dev \ | |
libswresample-dev libswscale-dev \ | |
uuid-dev patchelf | |
- name: Build | |
run: | | |
meson setup ${{ env.MESON_ARGS }} ${{ env.MESON_ARGS_LINUX_WAYLAND }} builddir | |
meson compile -C builddir | |
env: | |
CC: ${{ matrix.cc }} | |
- name: patchelf path to discord_game_sdk.so | |
run: | | |
patchelf --replace-needed /home/runner/work/q2pro/q2pro/extern/discord/lib/x86_64/discord_game_sdk.so ./discord_game_sdk.so builddir/q2pro | |
- name: Set binaries as executable | |
run: | | |
chmod +x builddir/q2pro* | |
- name: Generate Linux x64 archives | |
uses: actions/upload-artifact@v3 | |
with: | |
name: q2pro-lin-wayland-${{ matrix.cc }} | |
path: | | |
builddir/q2pro | |
builddir/q2proded | |
builddir/gamex86_64.so | |
linuxARM64: | |
runs-on: [self-hosted, ARM64] | |
strategy: | |
matrix: | |
cc: [gcc] | |
steps: | |
- uses: actions/checkout@v2 | |
# - name: Install dependencies | |
# run: | | |
# sudo apt-get update | |
# sudo apt-get install -y meson libsdl2-dev libopenal-dev \ | |
# libpng-dev libjpeg-dev zlib1g-dev mesa-common-dev \ | |
# libcurl4-gnutls-dev libx11-dev libxi-dev \ | |
# libwayland-dev wayland-protocols libdecor-0-dev patchelf \ | |
# libogg-dev libvorbis-dev | |
- name: Build | |
run: | | |
meson setup ${{ env.MESON_ARGS }} ${{ env.MESON_ARGS_LINUX_X11 }} builddir | |
meson compile -vC builddir | |
env: | |
CC: ${{ matrix.cc }} | |
- name: Set binaries as executable | |
run: | | |
chmod +x builddir/q2pro* | |
- name: Generate Linux ARM archives | |
uses: actions/upload-artifact@v3 | |
with: | |
name: q2pro-lin-arm64 | |
path: | | |
builddir/q2pro | |
builddir/q2proded | |
builddir/gamearm.so | |
darwin: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
arch: [x86_64] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install dependencies | |
run: | | |
brew install pkg-config meson libpng sdl2 openal-soft zlib curl ffmpeg jpeg-turbo | |
- name: Build | |
run: | | |
meson setup ${{ env.MESON_ARGS }} ${{ env.MESON_ARGS_MAC }} builddir | |
meson compile -vC builddir | |
env: | |
CC: "gcc" | |
PKG_CONFIG_PATH: "/usr/local/opt/openal-soft/lib/pkgconfig" | |
CFLAGS: "-mmacosx-version-min=10.7" | |
- name: Set binaries as executable | |
run: | | |
chmod +x builddir/q2pro* | |
- name: Generate Mac archives | |
uses: actions/upload-artifact@v3 | |
with: | |
name: q2pro-darwin-${{ matrix.arch }} | |
path: | | |
builddir/q2pro | |
builddir/q2proded | |
builddir/gamex86_64.dylib | |
# Github does not support Apple Silicon yet | |
# macARM64: | |
# runs-on: macos-latest | |
# steps: | |
# - uses: actions/checkout@v2 | |
# - name: Setup Homebrew for ARM64 and dependencies | |
# run: | | |
# arch -arm64 brew install meson libpng jpeg sdl2 openal-soft zlib curl libvorbis | |
# - name: Build | |
# run: | | |
# meson setup ${{ env.MESON_ARGS }} builddir | |
# ninja -vC builddir | |
# env: | |
# CC: "gcc" | |
# PKG_CONFIG_PATH: "/opt/homebrew/Cellar/openal-soft/1.22.2/lib/pkgconfig/:/opt/homebrew/Cellar/jpeg/9e/lib/pkgconfig/" | |
# CFLAGS: "-target arm64-apple-macos11" | |
# - name: Set binaries as executable | |
# run: | | |
# chmod +x builddir/q2pro* | |
# - name: Generate Mac archives | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: q2pro-mac-arm64 | |
# path: | | |
# builddir/q2pro | |
# builddir/q2proded |