From 0744bc40043974f802d53c4b2d8d41f2af3a3c6f Mon Sep 17 00:00:00 2001
From: TellowKrinkle <tellowkrinkle@gmail.com>
Date: Tue, 30 Nov 2021 21:31:56 -0600
Subject: [PATCH] GHActions: Build latest SDL on linux

Package manager version too old
---
 .github/workflows/linux-workflow.yml          | 21 +++++++++++++++++++
 .../scripts/linux/install-packages.sh         |  2 +-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/linux-workflow.yml b/.github/workflows/linux-workflow.yml
index eef13ec658..618bf6b96e 100644
--- a/.github/workflows/linux-workflow.yml
+++ b/.github/workflows/linux-workflow.yml
@@ -92,6 +92,7 @@ jobs:
       CCACHE_COMPRESS: true
       CCACHE_COMPRESSLEVEL: 9
       CCACHE_MAXSIZE: 100M
+      SDL: SDL2-2.0.16
 
     steps:
       # NOTE - useful for debugging
@@ -157,6 +158,26 @@ jobs:
           COMPILER: ${{ matrix.compiler }}
         run: .github/workflows/scripts/linux/install-packages.sh
 
+      - name: Cache SDL2
+        uses: actions/cache@v2.1.7
+        with:
+          path: 3rdparty/${{ env.SDL }}
+          key: ${{ matrix.os }} ${{ matrix.platform }} ${{ env.SDL }}
+
+      - name: Build SDL2
+        run: |
+          if [[ ! -e 3rdparty/${{ env.SDL }} ]]; then
+            curl -sL https://libsdl.org/release/${{ env.SDL }}.tar.gz | tar -xzC 3rdparty
+            cd 3rdparty/${{ env.SDL }}
+            if [ "${{ matrix.platform }}" == "x86" ]; then
+              ./configure --build=i686-pc-linux-gnu CC=${{ matrix.compiler }} CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 --prefix=/usr --libdir=/usr/lib/i386-linux-gnu
+            else
+              ./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu
+            fi
+            make -j $(getconf _NPROCESSORS_ONLN) && cd ../../
+          fi
+          sudo make -C 3rdparty/${{ env.SDL }} install
+
       - name: Generate CMake
         env:
           PLATFORM: ${{ matrix.platform }}
diff --git a/.github/workflows/scripts/linux/install-packages.sh b/.github/workflows/scripts/linux/install-packages.sh
index d86ab76e2c..cf9a09732d 100755
--- a/.github/workflows/scripts/linux/install-packages.sh
+++ b/.github/workflows/scripts/linux/install-packages.sh
@@ -24,9 +24,9 @@ declare -a PCSX2_PACKAGES=(
   "libpng-dev"
   "libpulse-dev"
   "librsvg2-dev"
-  "libsdl2-dev"
   "libsamplerate0-dev"
   "libsoundtouch-dev"
+  "libudev-dev"
   "libwxgtk3.0-gtk3-dev"
   "libx11-xcb-dev"
   "libxml2-dev"