Requirements
Building from Source
cmake -E make_directory <tmp-build-dir>
cmake -D CMAKE_BUILD_TYPE=Release -S <path-to-cloned-repo> -B <tmp-build-dir>
cmake --build <tmp-build-dir>
ctest --test-dir <tmp-build-dir> --verbose
Test Coverage
Similar to above, but specify ENABLE_COVERAGE=YES
for cmake
, which will add dependencies on gcov and LCOV.
cmake -E make_directory <tmp-build-dir>
cmake -D CMAKE_BUILD_TYPE=Release -D ENABLE_COVERAGE=YES -S <path-to-cloned-repo> -B <tmp-build-dir>
cmake --build <tmp-build-dir>
ctest --test-dir <tmp-build-dir> --verbose
cmake --build <tmp-build-dir> --target coverage coverage-html
# ls <tmp-build-dir>/test/coverage.info # Coverage summary data.
# ls <tmp-build-dir>/test/coverage/ # HTML view.
The first target (coverage
) uses lcov
to generate coverage.info
summary. And the second target (coverage-html
) used LCOV's genhtml
to generate an HTML view of coverage.info
.
Also available via Coveralls (or Codecov).
Documentation
Configure the same as above, but build the doc
and (optionally) doc-internal
targets.
cmake -E make_directory <tmp-build-dir>
cmake -S <path-to-cloned-repo> -B <tmp-build-dir>
cmake --build <tmp-build-dir> --target doc doc-internal
# ls <tmp-build-dir>/doc/public # Library end-user documentation
# ls <tmp-build-dir>/doc/internal # Internal library developer documentation
These are regularly published to Github Pages via Github Actions: