@@ -20,7 +20,7 @@ concurrency:
2020
2121jobs :
2222 build :
23- name : ${{ matrix.config.name }}- ${{ matrix.library_mode }}- ${{ matrix.boost }}Boost
23+ name : ${{ matrix.config.name }} ${{ matrix.library_mode }} ${{ matrix.boost && 'Boost' }}
2424 runs-on : ${{ matrix.config.os }}
2525 strategy :
2626 fail-fast : false
3232 name : " MSVC x86_64" ,
3333 os : windows-latest,
3434 generator : " " ,
35- cmakeflags : " -DLIBREMIDI_NO_WINUWP=0 - DBOOST_ROOT=$PWD/boost_1_90_0" ,
35+ cmakeflags : " -DBOOST_ROOT=$PWD/boost_1_90_0" ,
3636 test_target : " RUN_TESTS" ,
3737 tests : 1,
3838 examples : 1
@@ -41,13 +41,13 @@ jobs:
4141 name : " MSVC arm64" ,
4242 os : windows-11-arm,
4343 generator : " " ,
44- cmakeflags : " -DLIBREMIDI_NO_WINUWP=0 - DBOOST_ROOT=$PWD/boost_1_90_0" ,
44+ cmakeflags : " -DBOOST_ROOT=$PWD/boost_1_90_0" ,
4545 test_target : " RUN_TESTS" ,
4646 tests : 1,
4747 examples : 1
4848 }
4949 - {
50- name : " Ubuntu gcc" ,
50+ name : " Ubuntu gcc-13 " ,
5151 os : ubuntu-latest,
5252 generator : " " ,
5353 cmakeflags : " -DCMAKE_CXX_FLAGS='-Werror=return-type -fsanitize=address -fsanitize=undefined -D_GLIBCXX_DEBUG=1 -D_GLIBCXX_DEBUG_PEDANTIC=1 -D_GLIBCXX_ASSERTIONS=1 -D_GLIBCXX_SANITIZE_VECTOR=1'" ,
@@ -56,10 +56,19 @@ jobs:
5656 examples : 1
5757 }
5858 - {
59- name : " Ubuntu clang-19 libstdc++ " ,
59+ name : " Ubuntu gcc-14 " ,
6060 os : ubuntu-latest,
6161 generator : " " ,
62- cmakeflags : " -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_CXX_FLAGS='-Werror=return-type -fsanitize=address -fsanitize=undefined'" ,
62+ cmakeflags : " -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_CXX_FLAGS='-Werror=return-type -fsanitize=address -fsanitize=undefined -D_GLIBCXX_DEBUG=1 -D_GLIBCXX_DEBUG_PEDANTIC=1 -D_GLIBCXX_ASSERTIONS=1 -D_GLIBCXX_SANITIZE_VECTOR=1' -DBOOST_ROOT=$PWD/boost_1_90_0" ,
63+ test_target : " test" ,
64+ tests : 1,
65+ examples : 1
66+ }
67+ - {
68+ name : " Ubuntu clang-20 libstdc++" ,
69+ os : ubuntu-latest,
70+ generator : " " ,
71+ cmakeflags : " -DCMAKE_CXX_COMPILER=clang++-20 -DCMAKE_CXX_FLAGS='-Werror=return-type -fsanitize=address -fsanitize=undefined' -DBOOST_ROOT=$PWD/boost_1_90_0" ,
6372 test_target : " test" ,
6473 tests : 1,
6574 examples : 1
6877 name : " Ubuntu clang libc++" ,
6978 os : ubuntu-latest,
7079 generator : " " ,
71- cmakeflags : " -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS='-stdlib=libc++ -Werror=return-type'" ,
80+ cmakeflags : " -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS='-stdlib=libc++ -Werror=return-type' -DBOOST_ROOT=$PWD/boost_1_90_0 " ,
7281 test_target : " test" ,
7382 tests : 1,
7483 examples : 1
@@ -105,6 +114,31 @@ jobs:
105114 - config : { name: "iOS" }
106115 boost : 1
107116
117+ # Modules not yet working on VS2022
118+ - config : { name: "MSVC x86_64" }
119+ library_mode : MODULE
120+ - config : { name: "MSVC arm64" }
121+ library_mode : MODULE
122+
123+ # Modules not supported at all on gcc 13
124+ - config : { name: "Ubuntu gcc-13" }
125+ library_mode : MODULE
126+
127+ # ICE
128+ - config : { name: "Ubuntu gcc-14" }
129+ library_mode : MODULE
130+
131+ # Modules not yet supported by ubuntu 24.04 default clang version
132+ - config : { name: "Ubuntu clang libc++" }
133+ library_mode : MODULE
134+
135+ # Modules not supported at all by AppleClang as of Xcode 26
136+ - config : { name: "macOS" }
137+ library_mode : MODULE
138+
139+ - config : { name: "iOS" }
140+ library_mode : MODULE
141+
108142 steps :
109143 - uses : actions/checkout@v4
110144
@@ -119,26 +153,32 @@ jobs:
119153
120154 - name : Install dependencies
121155 if : matrix.config.name != 'Tarball'
156+ shell : bash
122157 run : |
123158 if [ "$RUNNER_OS" == "Linux" ]; then
124159 sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
125160 sudo apt update
126- sudo apt install cmake libboost-dev libasound-dev libjack-jackd2-dev clang libc++-dev
127- else
128- curl -L https://github.com/ossia/sdk/releases/download/sdk31/boost_1_90_0.tar.gz > boost.tar.gz
129- tar -xzf boost.tar.gz
130- rm boost.tar.gz
161+ sudo apt install cmake ninja-build curl libboost-dev libasound-dev libjack-jackd2-dev clang libc++-dev gcc gcc-14
162+ elif [ "$RUNNER_OS" == "macOS" ]; then
163+ brew install ninja
131164 fi
132- shell : bash
165+
166+ curl -L https://github.com/ossia/sdk/releases/download/sdk31/boost_1_90_0.tar.gz > boost.tar.gz
167+ tar -xzf boost.tar.gz
168+ rm boost.tar.gz
133169
134170 - name : Configure
135171 if : matrix.config.name != 'Tarball'
136172 shell : bash
137173 run : |
138174 CMAKE_GENERATOR=${{ matrix.config.generator }}
139- if [[ "$RUNNER_OS" == "Linux " ]]; then
175+ if [[ -z "$CMAKE_GENERATOR " ]]; then
140176 if [[ "${{ matrix.library_mode }}" == "MODULE" ]]; then
141- CMAKE_GENERATOR=-GNinja
177+ if [[ "$RUNNER_OS" == "Linux" ]]; then
178+ CMAKE_GENERATOR=-GNinja
179+ elif [[ "$RUNNER_OS" == "macOS" ]]; then
180+ CMAKE_GENERATOR=-GNinja
181+ fi
142182 fi
143183 fi
144184
@@ -160,7 +200,7 @@ jobs:
160200 cmake --build build --config Debug --target install
161201
162202 - name : Test
163- if : matrix.config.name != 'Tarball' && matrix.config.name != 'iOS'
203+ if : matrix.config.name != 'Tarball' && matrix.config.name != 'iOS' && matrix.library_mode != 'MODULE'
164204 run : |
165205 # Not available on GH actions...
166206 # if [ "$RUNNER_OS" == "Linux" ]; then
@@ -185,8 +225,9 @@ jobs:
185225 - uses : vmactions/freebsd-vm@v1
186226 with :
187227 usesh : true
228+
188229 prepare : |
189- pkg install -y jackit boost-libs cmake git
230+ pkg install -y jackit boost-libs cmake git ninja
190231
191232 run : |
192233 pwd
@@ -195,7 +236,7 @@ jobs:
195236 env
196237 freebsd-version
197238 CMAKE_GENERATOR=
198- if [[ "${{ matrix.library_mode }}" == "MODULE" ] ]; then
239+ if [ "${{ matrix.library_mode }}" = "MODULE" ]; then
199240 CMAKE_GENERATOR=-GNinja
200241 fi
201242
@@ -210,11 +251,13 @@ jobs:
210251 -DCMAKE_INSTALL_PREFIX=install
211252
212253 cmake --build build
213- cmake --build build --target install
214- cmake --build build --target test
254+ if [ "${{ matrix.library_mode }}" != "MODULE" ]; then
255+ cmake --build build --target install
256+ cmake --build build --target test
257+ fi
215258
216259 build_debian :
217- name : Debian ${{ matrix.distro }}
260+ name : Debian ${{ matrix.distro }} ${{ matrix.library_mode }} ${{ matrix.cxx }} ${{ matrix.boost && 'Boost' }}
218261 runs-on : ubuntu-latest
219262 container :
220263 image : debian:${{ matrix.distro }}
@@ -224,17 +267,18 @@ jobs:
224267 boost : [0, 1]
225268 library_mode : [LIBRARY, HEADER_ONLY, MODULE]
226269 distro : [bookworm, trixie, testing]
270+ cxx : [c++, clang++]
227271
228272 exclude :
229273 - distro : bookworm
230274 library_mode : MODULE
275+ - distro : trixie
276+ library_mode : MODULE
277+ - distro : testing
278+ library_mode : MODULE
279+ cxx : c++
231280
232281 steps :
233- - name : Add backports repo if necessary
234- if : matrix.distro == 'bullseye'
235- run : |
236- echo "deb http://ftp.debian.org/debian/ ${{ matrix.distro }}-backports main non-free contrib" > /etc/apt/sources.list.d/${{ matrix.distro }}-backports.list
237-
238282 - name : Install git
239283 run : |
240284 apt-get update -qq
@@ -255,30 +299,38 @@ jobs:
255299 libjack-jackd2-dev \
256300 libudev-dev \
257301 libpipewire-0.3-dev \
258- cmake
302+ cmake ninja-build curl
303+
304+ curl -L https://github.com/ossia/sdk/releases/download/sdk31/boost_1_90_0.tar.gz > boost.tar.gz
305+ tar -xzf boost.tar.gz
306+ rm boost.tar.gz
259307
260308 - name : Configure
309+ shell : bash
261310 run : |
262- CMAKE_GENERATOR=${{ matrix.config.generator }}
311+ CMAKE_GENERATOR=
263312 if [[ "${{ matrix.library_mode }}" == "MODULE" ]]; then
264313 CMAKE_GENERATOR=-GNinja
265314 fi
266315 cmake -S . -B build \
267316 $CMAKE_GENERATOR \
317+ -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
268318 -DLIBREMIDI_FIND_BOOST=${{ matrix.boost }} \
269319 -DLIBREMIDI_LIBRARY_MODE=${{ matrix.library_mode }} \
270320 -DLIBREMIDI_EXAMPLES=1 \
271321 -DLIBREMIDI_TESTS=1 \
272322 -DLIBREMIDI_CI=1 \
273323 -DCMAKE_CTEST_ARGUMENTS="--rerun-failed;--output-on-failure" \
274- -DCMAKE_INSTALL_PREFIX=install
324+ -DCMAKE_INSTALL_PREFIX=install \
325+ -DBOOST_ROOT=$PWD/boost_1_90_0
275326
276327 - name : Build
277328 run : |
278329 cmake --build build --config Debug
279330 cmake --build build --config Debug --target install
280331
281332 - name : Test
333+ if : matrix.library_mode != 'MODULE'
282334 run : |
283335 cmake --build build --config Debug --target test
284336
0 commit comments