1
- name : makefile
1
+ name : build
2
2
3
3
on :
4
4
push :
7
7
pull_request :
8
8
branches :
9
9
- ' *'
10
- env :
11
- DEBIAN_FRONTEND : noninteractive
12
10
13
11
jobs :
14
- linux-x86_64 :
15
- runs-on : ubuntu-22.04
12
+ build :
13
+ strategy :
14
+ matrix :
15
+ os :
16
+ - macos-12
17
+ - macos-13
18
+ - macos-14
19
+ # webgui failure
20
+ # - ubuntu-20.04
21
+ - ubuntu-22.04
22
+ - ubuntu-24.04
23
+ runs-on : ${{ matrix.os }}
16
24
steps :
17
25
- uses : actions/checkout@v4
18
26
with :
19
27
submodules : recursive
20
28
- name : Set up dependencies
29
+ if : ${{ runner.os == 'Linux' }}
30
+ env :
31
+ DEBIAN_FRONTEND : noninteractive
21
32
run : |
22
33
sudo apt-get update -qq
23
34
sudo apt-get install -yq libasound2-dev libcairo2-dev libdbus-1-dev libgl1-mesa-dev liblo-dev libpulse-dev libsdl2-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev xvfb
35
+ - name : Set num jobs
36
+ if : ${{ runner.os == 'Linux' }}
37
+ run : echo "JOBS=$(nproc)" >> $GITHUB_ENV
38
+ - name : Set num jobs
39
+ if : ${{ runner.os != 'Linux' }}
40
+ run : echo "JOBS=$(sysctl -n hw.logicalcpu)" >> $GITHUB_ENV
24
41
- name : Without any warnings
25
42
env :
26
43
CFLAGS : -Werror
27
44
CXXFLAGS : -Werror
28
45
run : |
29
46
make clean >/dev/null
30
- make -j $(nproc)
47
+ make -j ${{ env.JOBS }}
31
48
- name : Run tests
32
- env :
33
- CFLAGS : -Werror
34
- CXXFLAGS : -Werror
49
+ if : ${{ runner.os == 'Linux' }}
35
50
run : |
36
51
xvfb-run make -C tests run
37
52
- name : As C++98 mode
@@ -40,39 +55,67 @@ jobs:
40
55
CXXFLAGS : -Werror -std=gnu++98
41
56
run : |
42
57
make clean >/dev/null
43
- make -j $(nproc)
58
+ make -j ${{ env.JOBS }}
59
+ - name : As C++11 mode
60
+ env :
61
+ CFLAGS : -Werror
62
+ CXXFLAGS : -Werror -std=gnu++11
63
+ run : |
64
+ make clean >/dev/null
65
+ make -j ${{ env.JOBS }}
66
+ - name : As C++14 mode
67
+ env :
68
+ CFLAGS : -Werror
69
+ CXXFLAGS : -Werror -std=gnu++14
70
+ run : |
71
+ make clean >/dev/null
72
+ make -j ${{ env.JOBS }}
73
+ - name : As C++17 mode
74
+ env :
75
+ CFLAGS : -Werror
76
+ CXXFLAGS : -Werror -std=gnu++17
77
+ run : |
78
+ make clean >/dev/null
79
+ make -j ${{ env.JOBS }}
80
+ - name : As C++20 mode
81
+ env :
82
+ CFLAGS : -Werror
83
+ CXXFLAGS : -Werror -std=gnu++20
84
+ run : |
85
+ make clean >/dev/null
86
+ make -j ${{ env.JOBS }}
44
87
- name : No namespace
45
88
env :
46
89
CFLAGS : -Werror
47
90
CXXFLAGS : -Werror -DDONT_SET_USING_DISTRHO_NAMESPACE -DDONT_SET_USING_DGL_NAMESPACE
48
91
run : |
49
92
make clean >/dev/null
50
- make -j $(nproc)
93
+ make -j ${{ env.JOBS }}
51
94
- name : Custom namespace
52
95
env :
53
96
CFLAGS : -Werror
54
97
CXXFLAGS : -Werror -DDISTRHO_NAMESPACE=WubbWubb -DDGL_NAMESPACE=DabDab
55
98
run : |
56
99
make clean >/dev/null
57
- make -j $(nproc)
100
+ make -j ${{ env.JOBS }}
58
101
- name : With OpenGL 3.x
59
102
env :
60
103
CFLAGS : -Werror
61
104
CXXFLAGS : -Werror
62
105
run : |
63
106
make clean >/dev/null
64
- make -j $(nproc) USE_OPENGL3=true
107
+ make -j ${{ env.JOBS }} USE_OPENGL3=true
65
108
- name : Without Cairo
66
109
env :
67
110
CFLAGS : -Werror
68
111
CXXFLAGS : -Werror
69
112
run : |
70
113
make clean >/dev/null
71
- make -j $(nproc) HAVE_CAIRO=
114
+ make -j ${{ env.JOBS }} HAVE_CAIRO=false
72
115
- name : Without OpenGL
73
116
env :
74
117
CFLAGS : -Werror
75
118
CXXFLAGS : -Werror
76
119
run : |
77
120
make clean >/dev/null
78
- make -j $(nproc) HAVE_OPENGL=
121
+ make -j ${{ env.JOBS }} HAVE_OPENGL=false
0 commit comments