Files
xahaud/cmake
Nicholas Dudfield 7b8d671f52 ci: add -Dcoverage_tool=gcov|llvm option, wire native llvm-cov in matrix
introduces native llvm source-based coverage as an alternative to the
existing gcov + gcovr pipeline. driven by a new -Dcoverage_tool cache
variable (default 'gcov' for backwards compat; 'llvm' enables
-fprofile-instr-generate / -fcoverage-mapping + llvm-profdata + llvm-cov).

cmake:
- RippledSettings.cmake: add coverage_tool with validation
- RippledInterface.cmake: split coverage compile/link flags by tool
- RippledCov.cmake: dispatch to the new helper when tool=llvm
- CodeCoverageLLVM.cmake (new): setup_target_for_coverage_llvm() driving
  profraw -> profdata -> export with format-aware output (lcov/json/txt/html)

ci:
- new clang-20 llvm-cov coverage matrix row (apt.llvm.org bootstrap for
  clang >= 19 since 24.04 default repos cap at clang-18)
- conditional install of llvm-N vs gcovr based on coverage_tool
- artifact + codecov upload generalised to coverage.lcov | coverage.xml
- coverage cmake-args switched to *_FLAGS_DEBUG so the build action's
  stdlib flag isn't clobbered

temp (revert before merging to dev):
- matrix narrowed to just the llvm-cov row on non-main refs so we can
  iterate without burning runners
- 'coverage-llm' added to push trigger for direct-push CI runs
2026-04-30 15:07:52 +07:00
..
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00

These are modules and sources that support our CMake build.

== FindBoost.cmake ==

In order to facilitate updating to latest releases of boost, we've made a local copy of the FindBoost cmake module in our repo. The latest official version can generally be obtained here.

The latest version provided by Kitware can be tailored for use with the version of CMake that it ships with (typically the next upcoming CMake release). As such, the latest version from the repository might not work perfectly with older versions of CMake - for instance, the latest version might use features or properties only available in the version of CMake that it ships with. Given this, it's best to test any updates to this module with a few different versions of cmake.