- CodeCoverageLLVM.cmake: BASE_DIRECTORY was parsed but never used
(no analog to gcovr's -r in the llvm-cov commands we emit). dead arg.
- xahau-ga-macos.yml.disabled: revert the conan_deps_cxxflags addition.
the file is disabled so the edit was bit-rotting in unreachable code.
whoever revives the macOS workflow can wire up the field then.
two bugs caught in review:
- RippledSettings.cmake: the clang-only guard for coverage_tool=llvm ran
before coverage_test could auto-enable coverage. so
'-Dcoverage_tool=llvm -Dcoverage_test=Foo' on a gcc build slipped past
the guard and produced an instrumentation/tool mismatch. move the
guard after the auto-enable block.
- CodeCoverageLLVM.cmake: _find_llvm_cov_tools unconditionally
preferred xcrun's tools on APPLE, which on a homebrew clang-N build
would pair the user's clang with xcode's llvm-cov - exactly the
version mismatch the helper is trying to avoid. gate the xcrun branch
on CMAKE_CXX_COMPILER_ID == AppleClang.
bare 'rippled' wasn't on PATH and the build dir isn't '.', so the
profile-collection step failed with 'No such file or directory'.
splice the resolved absolute path back into Cov_EXECUTABLE before
the run command consumes it.
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