-
-
Notifications
You must be signed in to change notification settings - Fork 20
148 lines (123 loc) · 3.61 KB
/
cmake.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
name: CMake
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
BUILD_TYPE: Release
jobs:
build:
strategy:
fail-fast: false
matrix:
system: [ Linux-x64, Windows-MSVC-x64, Windows-MSYS-x64, MacOS-x64, MacOS-ARM ]
webgpu-backend: [ DAWN, WGPU ]
link-type: [ SHARED, STATIC ]
build-type: [ Debug, Release ]
include:
- system: Linux-x64
runner: ubuntu-latest
install-deps: |
sudo apt-get update -y
sudo apt-get install -y libwayland-dev libxkbcommon-dev xorg-dev
- system: Windows-MSVC-x64
runner: windows-latest
exe-extension: .exe
is-multiconfig: true
- system: Windows-MSYS-x64
runner: windows-latest
msystem: ucrt64
exe-extension: .exe
- system: MacOS-ARM
runner: macos-latest
- system: MacOS-x64
runner: macos-13
# Latest version of Dawn to not support static linking
exclude:
- webgpu-backend: DAWN
link-type: STATIC
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- name: Install dependencies
if: ${{ matrix.install-deps }}
run: ${{ matrix.install-deps }}
- name: Setup MSYS
if: ${{ matrix.msystem }}
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.msystem }}
pacboy: >-
toolchain:p
cmake:p
ninja:p
- name: Setup emscripten
if: ${{ matrix.emsdk-version }}
uses: mymindstorm/setup-emsdk@v14
with:
version: ${{ matrix.emsdk-version }}
- name: Configure CMake
if: ${{ ! matrix.msystem }}
run: >
${{ matrix.cmake-wrapper }} cmake
-S examples
-B build
-DWEBGPU_BACKEND=${{ matrix.webgpu-backend }}
-D${{ matrix.webgpu-backend }}_LINK_TYPE=${{ matrix.link-type }}
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
- name: Build
if: ${{ ! matrix.msystem }}
run: >
cmake
--build build
--config ${{ matrix.build-type }}
# This is a hack to work around the lack of ${{ variables }} in 'shell' parameter
# We use the SHELL env variable as the value of 'shell'
- name: Configure CMake (MSYS)
if: ${{ matrix.msystem }}
shell: msys2 {0}
run: >
cmake
-S examples
-B build
-DWEBGPU_BACKEND=${{ matrix.webgpu-backend }}
-D${{ matrix.webgpu-backend }}_LINK_TYPE=${{ matrix.link-type }}
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
- name: Build (MSYS)
if: ${{ matrix.msystem }}
shell: msys2 {0}
run: >
cmake
--build build
--config ${{ matrix.build-type }}
# Was too annoying to put emscripten in the matrix, so here it is, on its own:
build-web:
strategy:
fail-fast: false
matrix:
system: [ emscripten ]
build-type: [ Debug, Release ]
emsdk-version: [ 3.1.61 ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
if: ${{ matrix.install-deps }}
run: ${{ matrix.install-deps }}
- name: Setup emscripten
if: ${{ matrix.emsdk-version }}
uses: mymindstorm/setup-emsdk@v14
with:
version: ${{ matrix.emsdk-version }}
- name: Configure CMake
run: >
emcmake cmake
-S examples
-B build
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
- name: Build
run: >
cmake
--build build
--config ${{ matrix.build-type }}