From 6eb185bda8a8ef612cded3c2023547ff35121419 Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Wed, 27 Aug 2025 10:53:57 +0200 Subject: [PATCH] CI Linux: build SDL3 based on 9eb376ee388df0ab3dc97a3c0c6bf8d95cd1a590 --- .github/scripts/Linux/download_build_sdl.sh | 19 +++++++++++++++++++ .github/scripts/Linux/install_sdl.sh | 7 +++++++ .github/scripts/Linux/prepare.sh | 8 ++++++-- .github/workflows/ccpp.yml | 12 ++++++++++++ 4 files changed, 44 insertions(+), 2 deletions(-) create mode 100755 .github/scripts/Linux/download_build_sdl.sh create mode 100755 .github/scripts/Linux/install_sdl.sh diff --git a/.github/scripts/Linux/download_build_sdl.sh b/.github/scripts/Linux/download_build_sdl.sh new file mode 100755 index 000000000..577a3e2bd --- /dev/null +++ b/.github/scripts/Linux/download_build_sdl.sh @@ -0,0 +1,19 @@ +#!/bin/sh -eu + +mkdir -p /var/tmp/sdl +cd /var/tmp/sdl + +git clone --depth 1 https://github.com/libsdl-org/SDL +cd SDL +cmake -S . -B build +cmake --build build -j "$(nproc)" +sudo cmake --install build +cd .. + +git clone --depth 1 https://github.com/libsdl-org/SDL_ttf +cd SDL_ttf +cmake -S . -B build +cmake --build build -j "$(nproc)" +sudo cmake --install build +cd .. + diff --git a/.github/scripts/Linux/install_sdl.sh b/.github/scripts/Linux/install_sdl.sh new file mode 100755 index 000000000..ec2bc9525 --- /dev/null +++ b/.github/scripts/Linux/install_sdl.sh @@ -0,0 +1,7 @@ +#!/bin/sh -eu + +cd /var/tmp/sdl/SDL +sudo cmake --install build +cd ../SDL_ttf +sudo cmake --install build + diff --git a/.github/scripts/Linux/prepare.sh b/.github/scripts/Linux/prepare.sh index 56e10b737..7b61c2287 100755 --- a/.github/scripts/Linux/prepare.sh +++ b/.github/scripts/Linux/prepare.sh @@ -24,7 +24,6 @@ sudo apt install libfluidsynth-dev sudo apt install libglew-dev libglfw3-dev sudo apt install libglm-dev sudo apt install imagemagick libmagickwand-dev -sudo apt install libsdl2-dev libsdl2-ttf-dev sudo apt install libsoxr-dev libspeexdsp-dev sudo apt install libssl-dev sudo apt install libasound-dev libcaca-dev libjack-jackd2-dev libnatpmp-dev libv4l-dev portaudio19-dev @@ -36,7 +35,12 @@ get_build_deps_excl() { # $2 - pattern to exclude; separate packates with '\|' ( apt-cache showsrc "$1" | sed -n '/^Build-Depends:/{s/Build-Depends://;p;q}' | tr ',' '\n' | cut -f 2 -d\ | grep -v "$2" } -ffmpeg_build_dep=$(get_build_deps_excl ffmpeg 'nonexistent-placeholder') +sudo apt build-dep libsdl2 +sdl2_ttf_build_dep=$(get_build_deps_excl libsdl2-ttf libsdl2-dev) +# shellcheck disable=SC2086 # intentional +sudo apt install $sdl2_ttf_build_dep + +ffmpeg_build_dep=$(get_build_deps_excl ffmpeg 'libsdl') # shellcheck disable=SC2086 # intentional sudo apt install $ffmpeg_build_dep libdav1d-dev libde265-dev libopenh264-dev sudo apt-get -y remove 'libavcodec*' 'libavutil*' 'libswscale*' libvpx-dev nginx diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 59a2d75a3..842e85876 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -91,6 +91,18 @@ jobs: - name: Install Cached FFmpeg if: steps.cache-ffmpeg.outputs.cache-hit == 'true' run: .github/scripts/Linux/install_ffmpeg.sh + - name: Cache SDL + id: cache-sdl + uses: actions/cache@v3 + with: + path: '/var/tmp/sdl' + key: cache-sdl-${{ runner.os }}-${{ hashFiles( '.github/scripts/Linux/prepare.sh', '.github/scripts/Linux/download_build_sdl.sh' ) }} + - name: Build SDL + if: steps.cache-sdl.outputs.cache-hit != 'true' + run: .github/scripts/Linux/download_build_sdl.sh + - name: Install Cached SDL + if: steps.cache-sdl.outputs.cache-hit == 'true' + run: .github/scripts/Linux/install_sdl.sh - name: configure run: "./autogen.sh $FEATURES || { RC=$?; cat config.log; exit $RC; }" - name: make