@@ -58,13 +58,13 @@ jobs:
5858 - name : CMake build on ubuntu (with GUI / system tinyxml2)
5959 if : contains(matrix.os, 'ubuntu')
6060 run : |
61- cmake -S . -B cmake.output.tinyxml2 -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=On - DWITH_QCHART=On -DBUILD_TRIAGE=On -DUSE_BUNDLED_TINYXML2=Off -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
61+ cmake -S . -B cmake.output.tinyxml2 -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DWITH_QCHART=On -DBUILD_TRIAGE=On -DUSE_BUNDLED_TINYXML2=Off -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
6262 cmake --build cmake.output.tinyxml2 -- -j$(nproc)
6363
6464 - name : CMake build on macos (with GUI / system tinyxml2)
6565 if : contains(matrix.os, 'macos')
6666 run : |
67- cmake -S . -B cmake.output.tinyxml2 -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=On - DWITH_QCHART=On -DBUILD_TRIAGE=On -DUSE_BUNDLED_TINYXML2=Off -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DQt6_DIR=$(brew --prefix qt@6)/lib/cmake/Qt6
67+ cmake -S . -B cmake.output.tinyxml2 -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DWITH_QCHART=On -DBUILD_TRIAGE=On -DUSE_BUNDLED_TINYXML2=Off -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DQt6_DIR=$(brew --prefix qt@6)/lib/cmake/Qt6
6868 cmake --build cmake.output.tinyxml2 -- -j$(nproc)
6969
7070 - name : Run CMake test (system tinyxml2)
@@ -127,12 +127,12 @@ jobs:
127127 - name : Run CMake on ubuntu (with GUI)
128128 if : contains(matrix.os, 'ubuntu')
129129 run : |
130- cmake -S . -B cmake.output -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=On - DWITH_QCHART=On -DBUILD_TRIAGE=On -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=cppcheck-cmake-install
130+ cmake -S . -B cmake.output -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DWITH_QCHART=On -DBUILD_TRIAGE=On -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=cppcheck-cmake-install
131131
132132 - name : Run CMake on macos (with GUI)
133133 if : contains(matrix.os, 'macos')
134134 run : |
135- cmake -S . -B cmake.output -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=On - DWITH_QCHART=On -DBUILD_TRIAGE=On -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=cppcheck-cmake-install -DQt6_DIR=$(brew --prefix qt@6)/lib/cmake/Qt6
135+ cmake -S . -B cmake.output -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DWITH_QCHART=On -DBUILD_TRIAGE=On -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=cppcheck-cmake-install -DQt6_DIR=$(brew --prefix qt@6)/lib/cmake/Qt6
136136
137137 - name : Run CMake build
138138 run : |
@@ -243,6 +243,67 @@ jobs:
243243 run : |
244244 ls lib/*.cpp | xargs -n 1 -P $(nproc) g++ -fsyntax-only -std=c++0x -Ilib -Iexternals -Iexternals/picojson -Iexternals/simplecpp -Iexternals/tinyxml2 -DNONNEG
245245
246+ build_cmake_boost :
247+
248+ strategy :
249+ matrix :
250+ os : [macos-13, macos-15] # non-macos platforms are already built with Boost in other contexts
251+ fail-fast : false # Prefer quick result
252+
253+ runs-on : ${{ matrix.os }}
254+
255+ env :
256+ # TODO: figure out why there are cache misses with PCH enabled
257+ CCACHE_SLOPPINESS : pch_defines,time_macros
258+
259+ steps :
260+ - uses : actions/checkout@v4
261+ with :
262+ persist-credentials : false
263+
264+ - name : ccache
265+ uses : hendrikmuhs/ccache-action@v1.2
266+ with :
267+ key : ${{ github.workflow }}-${{ github.job }}-${{ matrix.os }}
268+
269+ - name : Run CMake on macOS (force Boost)
270+ run : |
271+ # make sure we fail when Boost is requested and not available.
272+ # will fail because no package configuration is available.
273+ if cmake -S . -B cmake.output.boost-force-noavail -G "Unix Makefiles" -DUSE_BOOST=On; then
274+ exit 1
275+ else
276+ exit 0
277+ fi
278+
279+ # coreutils contains "nproc"
280+ - name : Install missing software on macOS
281+ run : |
282+ brew install coreutils boost
283+
284+ - name : Run CMake on macOS (force Boost)
285+ run : |
286+ cmake -S . -B cmake.output.boost-force -G "Unix Makefiles" -DUSE_BOOST=On
287+
288+ - name : Run CMake on macOS (no Boost)
289+ run : |
290+ # make sure Boost is not used when disabled even though it is available
291+ cmake -S . -B cmake.output.boost-no -G "Unix Makefiles" -DUSE_BOOST=Off
292+ if grep -q '\-DHAVE_BOOST' ./cmake.output.boost-no/compile_commands.json; then
293+ exit 1
294+ else
295+ exit 0
296+ fi
297+
298+ - name : Run CMake on macOS (with Boost)
299+ run : |
300+ cmake -S . -B cmake.output.boost -G "Unix Makefiles" -DBUILD_TESTS=On -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
301+ grep -q '\-DHAVE_BOOST' ./cmake.output.boost/compile_commands.json
302+
303+ - name : Build with CMake on macOS (with Boost)
304+ run : |
305+ cmake --build cmake.output.boost -- -j$(nproc)
306+
246307 build :
247308
248309 strategy :
0 commit comments