Rerelease game ffmpeg #95
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: [rerelease-game, ci] | |
pull_request: | |
branches: [rerelease-game] | |
workflow_dispatch: | |
env: | |
# FIXME: Re-add '--fatal-meson-warnings' when meson fixed 'CMake Toolchain: Failed to determine CMake compilers state' w/ openal | |
MESON_ARGS: >- | |
-Danticheat-server=true | |
-Dpacketdup-hack=true | |
-Dtests=true | |
-Dwerror=true | |
-Davcodec=enabled | |
-Dffmpeg:werror=false | |
-Dlibcurl=enabled | |
-Dlibjpeg=enabled | |
-Dlibpng=enabled | |
-Dopenal=enabled | |
-Dopenal-soft:werror=false | |
-Dsoftware-sound=enabled | |
-Dzlib=enabled | |
MESON_ARGS_WIN: >- | |
-Dicmp-errors=enabled | |
-Dwrap_mode=forcefallback | |
-Dwindows-crash-dumps=enabled | |
MESON_ARGS_LINUX: >- | |
-Dwrap_mode=nofallback | |
--force-fallback-for=fmt,jsoncpp,ffmpeg | |
-Dsdl2=enabled | |
-Dwayland=enabled | |
-Dx11=enabled | |
MESON_ARGS_MACOS: >- | |
-Dpkg_config_path=/opt/homebrew/opt/openal-soft/lib/pkgconfig | |
-Dwrap_mode=nofallback | |
--force-fallback-for=fmt,jsoncpp,ffmpeg | |
MESON_ARGS_FREEBSD: >- | |
-Dwrap_mode=nofallback | |
--force-fallback-for=fmt,jsoncpp,openal-soft,ffmpeg | |
jobs: | |
mingw: | |
runs-on: ubuntu-24.04 | |
strategy: | |
matrix: | |
arch: ["i686", "x86_64"] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- 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 g++-mingw-w64 nasm meson ninja-build | |
- name: Build - meson setup | |
run: | | |
meson setup --cross-file=.ci/${{ matrix.arch }}-w64-mingw32.txt \ | |
${{ env.MESON_ARGS }} ${{ env.MESON_ARGS_WIN }} builddir | |
- name: Build info - meson configure | |
run: | | |
meson configure builddir | |
- name: Build - meson compile | |
run: | | |
meson compile -C builddir | |
msvc: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
arch: ["x86", "x64"] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- 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 - meson setup | |
run: | | |
meson setup ${{ env.MESON_ARGS }} ${{ env.MESON_ARGS_WIN }} builddir | |
- name: Build info - meson configure | |
run: | | |
meson configure builddir | |
- name: Build - meson compile | |
run: | | |
meson compile -C builddir | |
meson install -C builddir --tags runtime --destdir ${{ github.workspace }}/installdir | |
- name: Setup variables | |
uses: actions/github-script@v7 | |
with: | |
script: core.exportVariable('GITHUB_SHA_SHORT', context.sha.substring(0, 7)) | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: q2pro-rr-windows-${{ matrix.arch }}-${{env.GITHUB_SHA_SHORT}} | |
path: installdir/ | |
linux: | |
runs-on: ubuntu-24.04 | |
strategy: | |
matrix: | |
include: | |
- cc: gcc | |
cxx: g++ | |
- cc: clang | |
cxx: clang++ | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- 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 | |
- name: Build - meson setup | |
run: | | |
meson setup ${{ env.MESON_ARGS }} ${{ env.MESON_ARGS_LINUX }} builddir | |
env: | |
CC: ${{ matrix.cc }} | |
CXX: ${{ matrix.cxx }} | |
- name: Build info - meson configure | |
run: | | |
meson configure builddir | |
- name: Build - meson compile | |
run: | | |
meson compile -C builddir | |
meson install -C builddir --tags runtime --destdir ${{ github.workspace }}/installdir | |
- name: Setup variables | |
uses: actions/github-script@v7 | |
with: | |
script: core.exportVariable('GITHUB_SHA_SHORT', context.sha.substring(0, 7)) | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: q2pro-rr-linux-${{ matrix.cc }}-x86_64-${{env.GITHUB_SHA_SHORT}} | |
path: installdir/ | |
macos: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install dependencies | |
run: | | |
brew update | |
brew install meson sdl2 openal-soft libpng jpeg-turbo | |
- name: Build - meson setup | |
run: | | |
meson setup ${{ env.MESON_ARGS }} ${{ env.MESON_ARGS_MACOS }} builddir | |
- name: Build info - meson configure | |
run: | | |
meson configure builddir | |
- name: Build - meson compile | |
run: | | |
meson compile -C builddir | |
freebsd: | |
runs-on: ubuntu-24.04 | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Build | |
uses: cross-platform-actions/[email protected] | |
with: | |
operating_system: freebsd | |
architecture: x86-64 | |
version: '14.1' | |
run: | | |
sudo pkg update | |
sudo pkg install -y git meson pkgconf nasm \ | |
sdl2 curl png jpeg-turbo libx11 libdecor evdev-proto wayland-protocols | |
meson setup ${{ env.MESON_ARGS }} ${{ env.MESON_ARGS_FREEBSD }} builddir | |
meson configure builddir | |
meson compile -C builddir |