3 on: [push, pull_request]
6 DESTDIR: ${{ github.workspace }}/build/tmp
13 - container: debian:11
14 - container: debian:12
15 - container: ubuntu:22.04
16 - container: ubuntu:24.04
17 runs-on: ubuntu-latest
19 image: ${{ matrix.container }}
21 - uses: actions/checkout@v4
22 - name: Set up dependencies
25 apt-get install -yqq cmake g++ libfluidsynth-dev liblo-dev libmagic-dev libsndfile1-dev libx11-dev lsb-release pkg-config
26 echo "PACK_NAME=$(lsb_release -cs 2>/dev/null)" >> "${GITHUB_ENV}"
28 run: cmake -S cmake -B build
30 run: cmake --build build -j $(nproc)
32 run: cmake --install build --verbose
33 - uses: actions/upload-artifact@v4
35 name: linux-${{ env.PACK_NAME }}
36 path: ${{ env.DESTDIR }}
46 - uses: actions/checkout@v4
47 - name: Set up dependencies
49 brew install cmake fluid-synth liblo libmagic libsndfile pkg-config
50 if [ "${{ matrix.frameworks }}" = "" ]; then
51 echo "PACK_NAME=frameworks" >> "${GITHUB_ENV}"
53 echo "PACK_NAME=libs" >> "${GITHUB_ENV}"
56 run: cmake -S cmake -B build -DCARLA_BUILD_FRAMEWORKS=${{ matrix.frameworks }}
58 run: cmake --build build -j $(sysctl -n hw.logicalcpu)
60 run: cmake --install build --verbose
61 - uses: actions/upload-artifact@v4
63 name: macos-${{ env.PACK_NAME }}-${{ matrix.frameworks }}
64 path: ${{ env.DESTDIR }}
70 - container: debian:11
71 - container: debian:12
72 - container: ubuntu:22.04
73 - container: ubuntu:24.04
74 runs-on: ubuntu-latest
76 image: ${{ matrix.container }}
78 - uses: actions/checkout@v4
79 - name: Set up dependencies
81 dpkg --add-architecture i386
83 apt-get install -yqq cmake binutils-mingw-w64-i686 gcc g++-mingw-w64 lsb-release mingw-w64 pkg-config
84 if [ "$(lsb_release -si 2>/dev/null)" = "Debian" ]; then
85 apt-get install -yqq wine wine32 wine64
87 apt-get install -yqq wine-stable
89 echo "PACK_NAME=$(lsb_release -cs 2>/dev/null)" >> "${GITHUB_ENV}"
93 run: cmake -S cmake -B build -DCMAKE_CROSSCOMPILING=ON -DCMAKE_CROSSCOMPILING_EMULATOR=wine -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=i686 -DCMAKE_C_COMPILER=i686-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=i686-w64-mingw32-g++ -DCMAKE_AR=/usr/bin/i686-w64-mingw32-ar -DCMAKE_C_COMPILER_AR=/usr/bin/i686-w64-mingw32-ar -DCMAKE_CXX_COMPILER_AR=/usr/bin/i686-w64-mingw32-ar -DCMAKE_RANLIB=/usr/bin/i686-w64-mingw32-ranlib -DCMAKE_C_COMPILER_RANLIB=/usr/bin/i686-w64-mingw32-ranlib -DCMAKE_CXX_COMPILER_RANLIB=/usr/bin/i686-w64-mingw32-ranlib -DCMAKE_RC_COMPILER=/usr/bin/i686-w64-mingw32-windres
95 run: cmake --build build -j $(nproc)
97 run: cmake --install build --verbose
98 - uses: actions/upload-artifact@v4
100 name: mingw32-${{ env.PACK_NAME }}
101 path: ${{ env.DESTDIR }}
107 - container: debian:11
108 - container: debian:12
109 - container: ubuntu:22.04
110 - container: ubuntu:24.04
111 runs-on: ubuntu-latest
113 image: ${{ matrix.container }}
115 - uses: actions/checkout@v4
116 - name: Set up dependencies
118 dpkg --add-architecture i386
120 apt-get install -yqq cmake binutils-mingw-w64-x86-64 gcc g++-mingw-w64 lsb-release mingw-w64 pkg-config
121 if [ "$(lsb_release -si 2>/dev/null)" = "Debian" ]; then
122 apt-get install -yqq wine wine32 wine64
124 apt-get install -yqq wine-stable
126 echo "PACK_NAME=$(lsb_release -cs 2>/dev/null)" >> "${GITHUB_ENV}"
130 run: cmake -S cmake -B build -DCMAKE_CROSSCOMPILING=ON -DCMAKE_CROSSCOMPILING_EMULATOR=wine -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ -DCMAKE_AR=/usr/bin/x86_64-w64-mingw32-ar -DCMAKE_C_COMPILER_AR=/usr/bin/x86_64-w64-mingw32-ar -DCMAKE_CXX_COMPILER_AR=/usr/bin/x86_64-w64-mingw32-ar -DCMAKE_RANLIB=/usr/bin/x86_64-w64-mingw32-ranlib -DCMAKE_C_COMPILER_RANLIB=/usr/bin/x86_64-w64-mingw32-ranlib -DCMAKE_CXX_COMPILER_RANLIB=/usr/bin/x86_64-w64-mingw32-ranlib -DCMAKE_RC_COMPILER=/usr/bin/x86_64-w64-mingw32-windres
132 run: cmake --build build -j $(nproc)
134 run: cmake --install build --verbose
135 - uses: actions/upload-artifact@v4
137 name: mingw64-${{ env.PACK_NAME }}
138 path: ${{ env.DESTDIR }}
141 runs-on: windows-latest
143 - uses: actions/checkout@v4
145 run: cmake -S cmake -B build
147 run: cmake --build build
148 # FIXME fails with error
149 # https://github.com/falkTX/Carla/actions/runs/5137608233/jobs/9245932221
151 #run: cmake --install build --verbose