ctest_coverage.cmake 854 B

1234567891011121314151617181920212223242526272829
  1. cmake_minimum_required(VERSION 3.29)
  2. include("${CMAKE_CURRENT_LIST_DIR}/gitlab_ci.cmake")
  3. # Read the files from the build directory.
  4. ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}")
  5. # Pick up from where the configure left off.
  6. ctest_start(APPEND)
  7. find_program(GCOV NAMES gcov)
  8. set(CTEST_COVERAGE_COMMAND "${GCOV}")
  9. set(CTEST_COVERAGE_EXTRA_FLAGS
  10. --hash-filenames
  11. --long-file-names)
  12. string(REPLACE ";" " " CTEST_COVERAGE_EXTRA_FLAGS "${CTEST_COVERAGE_EXTRA_FLAGS}")
  13. ctest_coverage(
  14. RETURN_VALUE coverage_result)
  15. ctest_submit(PARTS Coverage)
  16. include("${CMAKE_CURRENT_LIST_DIR}/ctest_annotation.cmake")
  17. ctest_annotation_report("${CTEST_BINARY_DIRECTORY}/annotations.json"
  18. "Coverage Report" "https://open.cdash.org/viewCoverage.php?buildid=${build_id}"
  19. )
  20. if (coverage_result)
  21. message(FATAL_ERROR
  22. "Failed to gather coverage")
  23. endif ()