diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml
index ee24e40..d5452e5 100644
--- a/.github/workflows/cmake.yml
+++ b/.github/workflows/cmake.yml
@@ -14,7 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- system: [ Linux-x64, Windows-MSVC-x64, Windows-MSYS-x64, MacOS-x64, MacOS-ARM ]
+ system: [ Linux-x64, Windows-MSVC-x64, Windows-MSYS-x64, MacOS-x64, MacOS-ARM, emscripten ]
webgpu-backend: [ DAWN, WGPU ]
link-type: [ SHARED, STATIC ]
build-type: [ Debug, Release ]
@@ -43,9 +43,21 @@ jobs:
- system: MacOS-x64
runner: macos-13
+ - system: emscripten
+ runner: ubuntu-latest
+ cmake-wrapper: emcmake
+ emsdk-version: 3.1.61
+
exclude:
+ # Latest version of Dawn to not support static linking
- webgpu-backend: DAWN
link-type: STATIC
+ # Emscripten does not care about backend, keeping only DAWN as a mock value
+ - system: emscripten
+ webgpu-backend: WGPU
+ # Emscripten does not care about linking, keeping only STATIC as a mock value
+ - system: emscripten
+ link-type: SHARED
runs-on: ${{ matrix.runner }}
@@ -64,9 +76,15 @@ jobs:
msystem: ${{ matrix.msystem }}
pacboy: cmake:p
+ - name: Setup emscripten
+ if: ${{ matrix.emsdk-version }}
+ uses: mymindstorm/setup-emsdk@v14
+ with:
+ version: ${{ matrix.emsdk-version }}
+
- name: Configure CMake
run: >
- cmake
+ ${{ matrix.cmake-wrapper }} cmake
-S examples
-B build
-DWEBGPU_BACKEND=${{ matrix.webgpu-backend }}
diff --git a/README.md b/README.md
index 67cc832..538c7f6 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
LearnWebGPU | WebGPU-C++ | WebGPU-distribution
- glfw3webgpu | sdl2webgpu
+ glfw3webgpu | sdl2webgpu | sdl3webgpu