Skip to content

Commit 086a070

Browse files
committed
Implement the coverage-html target for LLVM
Also corrected some lcov path exclusions broken by the recently-added `VERBATIM`.
1 parent bae5a89 commit 086a070

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

test/CMakeLists.txt

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,10 @@ if (ENABLE_COVERAGE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang$")
2525
coverage
2626
COMMAND ${LLVM_PROFDATA} merge --output coverage.profdata "${LLVM_PROFILE_FILES}"
2727
COMMAND ${LLVM_PROFDATA} show coverage.profdata
28-
COMMAND ${LLVM_COV} report --instr-profile coverage.profdata
28+
COMMAND ${LLVM_COV} export --format lcov --instr-profile coverage.profdata
2929
"--object;$<JOIN:$<TARGET_OBJECTS:QtPokit>,;--object;>"
3030
"$<$<TARGET_EXISTS:cli-lib>:--object;$<JOIN:$<TARGET_OBJECTS:cli-lib>,;--object;>>"
31-
"$<$<TARGET_EXISTS:gui-lib>:--object;$<JOIN:$<TARGET_OBJECTS:gui-lib>,;--object;>>"
32-
--sources "${LLVM_COV_SOURCES}"
31+
--sources "${LLVM_COV_SOURCES}" > coverage.info
3332
COMMAND_EXPAND_LISTS
3433
COMMENT "Collating coverage data"
3534
VERBATIM
@@ -40,32 +39,35 @@ endif()
4039
if (ENABLE_COVERAGE AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
4140
find_program(CODECOV_GCOV gcov)
4241
find_program(CODECOV_LCOV lcov)
43-
find_program(CODECOV_GENHTML genhtml)
4442
if (CODECOV_LCOV)
4543
message(STATUS "Found gcov ${CODECOV_GCOV}")
4644
message(STATUS "Found lcov ${CODECOV_LCOV}")
4745
add_custom_target(
4846
coverage
4947
COMMAND ${CODECOV_LCOV} --capture --directory . --gcov-tool ${CODECOV_GCOV} --output-file coverage.info
5048
COMMAND ${CODECOV_LCOV} --list coverage.info
51-
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info '/usr/*' --output-file coverage.info
52-
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info '*/.qt/*' --output-file coverage.info
53-
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info '*/.rcc/*' --output-file coverage.info
54-
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info '*/moc_*.cpp' --output-file coverage.info
55-
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info '*/mocs_compilation.cpp' --output-file coverage.info
56-
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info '*/qt/*' --output-file coverage.info
57-
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info '*/Qt/*' --output-file coverage.info
58-
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info '*/test/*' --output-file coverage.info
49+
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info /usr/* --output-file coverage.info
50+
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info */.qt/* --output-file coverage.info
51+
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info */.rcc/* --output-file coverage.info
52+
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info */moc_*.cpp --output-file coverage.info
53+
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info */mocs_compilation.cpp --output-file coverage.info
54+
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info */qt/* --output-file coverage.info
55+
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info */Qt/* --output-file coverage.info
56+
COMMAND ${CODECOV_LCOV} --ignore-errors unused --remove coverage.info */test/* --output-file coverage.info
5957
COMMAND ${CODECOV_LCOV} --list coverage.info
6058
COMMENT "Collating coverage data"
6159
VERBATIM
6260
WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
6361
endif()
62+
endif()
63+
64+
if (ENABLE_COVERAGE)
65+
find_program(CODECOV_GENHTML genhtml)
6466
if (CODECOV_GENHTML)
6567
message(STATUS "Found genhtml ${CODECOV_GENHTML}")
6668
add_custom_target(
6769
coverage-html
68-
COMMAND ${CODECOV_GENHTML} --output-directory coverage coverage.info
70+
COMMAND ${CODECOV_GENHTML} --output-directory coverage --prefix ${PROJECT_SOURCE_DIR} coverage.info
6971
COMMENT "Generating HTML coverage report"
7072
VERBATIM
7173
WORKING_DIRECTORY ${PROJECT_BINARY_DIR})

0 commit comments

Comments
 (0)