Commit 00fabdde182d1fdbd8ca0fb35545cccb11cd4d57

Subs 2021-03-03T19:05:47

Make github CI great again The current CI doesn't work and can be fixed. To steps, use a matrix to build on various OS + allow platform specific flags. The linux build should cover a wider case of video backends.

diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 0152283..6a62eee 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -3,44 +3,54 @@ name: Build
 on: [push, pull_request]
 
 jobs:
-    mac:
-        runs-on: macos-latest
-        steps:
-        - uses: actions/checkout@v1
-
-        - name: Build
-          run: |
-            mkdir build
-            cd build
-            cmake ..
-            cmake --build .
-
-    linux:
-        runs-on: ubuntu-20.04
-        steps:
-        - uses: actions/checkout@v1
-
-        - name: Setup
-          run: |
-            sudo apt-get update
-            sudo apt-get install wayland-protocols pkg-config ninja-build
-
-        - name: Linux
-          run: |
-            mkdir build
-            cd build
-            cmake .. -GNinja
-            cmake --build .
-
-    windows:
-        runs-on: windows-latest
-
-        steps:
-        - uses: actions/checkout@v1
-
-        - name: Build
-          run: |
-            mkdir build
-            cd build
-            cmake ..
-            cmake --build .
+  Build:
+    name: ${{ matrix.platform.name }}
+    runs-on: ${{ matrix.platform.os }}
+    strategy:
+      matrix:
+        platform:
+        - { name: Windows, os: windows-latest }
+        - { name: Linux,   os: ubuntu-20.04, flags: -GNinja }
+        - { name: MacOS,   os: macos-latest }
+    steps:
+    - name: Setup Linux dependencies
+      if: runner.os == 'Linux'
+      run: |
+        sudo apt-get update
+        sudo apt-get install wayland-protocols \
+          pkg-config \
+          ninja-build \
+          libasound2-dev \
+          libdbus-1-dev \
+          libegl1-mesa-dev \
+          libgl1-mesa-dev \
+          libgles2-mesa-dev \
+          libglu1-mesa-dev \
+          libibus-1.0-dev \
+          libpulse-dev \
+          libsdl2-2.0-0 \
+          libsndio-dev \
+          libudev-dev \
+          libwayland-dev \
+          libwayland-client++0 \
+          wayland-scanner++ \
+          libwayland-cursor++0 \
+          libx11-dev \
+          libxcursor-dev \
+          libxext-dev \
+          libxi-dev \
+          libxinerama-dev \
+          libxkbcommon-dev \
+          libxrandr-dev \
+          libxss-dev \
+          libxt-dev \
+          libxv-dev \
+          libxxf86vm-dev \
+          libdrm-dev \
+          libgbm-dev\
+          libpulse-dev
+    - uses: actions/checkout@v2
+    - name: Configure CMake
+      run: cmake -B build ${{ matrix.platform.flags }}
+    - name: Build
+      run: cmake --build build/