You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When you want to use the gcovr_* targets, another way could be to use the --gcov-executable option of gcovr:
include(CodeCoverage)
if (CMAKE_CXX_COMPILER_ID STREQUAL"Clang")
set(GCOVR_ADDITIONAL_ARGS --gcov-executable "llvm-cov gcov")
endif()
append_coverage_compiler_flags()
setup_target_for_coverage_gcovr_html(
NAME coverage-html
EXECUTABLE ctest
)
Looking at its help it seems you could also set the GCOV environment variable instead:
$ gcovr --helpGCOV Options: The 'gcov' tool turns raw coverage files (.gcda and .gcno) into .gcov files that are then processed by gcovr. The gcno files are generated by the compiler. The gcda files are generated when the instrumented program is executed. --gcov-executable GCOV_CMD Use a particular gcov executable. Must match the compiler you are using, e.g. 'llvm-cov gcov' for Clang. Can include additional arguments. Defaults to the GCOV environment variable, or 'gcov': 'gcov'.
When using
gcov
with a project built using Clang,gcov
is unable to parse the .gcno files, giving the error:version '402*', prefer 'A92*'
.This seems to be because
llvm-cov
is required. I've hacked around this myself by doing the following before including CodeCoverage.cmake:where
llvm-cov.sh
is the following (marked with executable permissions):Could this be added in with a somewhat less hacky workaround?
The text was updated successfully, but these errors were encountered: