CMake/Tests/CTestCoverageCollectGCOV/fakegcov.cmake
Cristian Morales Vega 911b97867b CTestCoverageCollectGCOV: run gcov only once
Running gcov once per .gcda file is not only inefficient, it also
generates wrong data since .gcov files can get overwritten and in
general gcov works with less information.

fakegcov.cmake needs to be able to handle multiple .gcda files for the
test to be meaningful.
2019-05-03 21:25:20 +01:00

18 lines
526 B
CMake

function(create_gcov_file gcda_full_path)
get_filename_component(gcda_name ${gcda_full_path} NAME)
string(REPLACE ".gcda" ".gcov" gcov_name "${gcda_name}")
file(STRINGS "${gcda_full_path}" source_file LIMIT_COUNT 1 ENCODING UTF-8)
file(WRITE "${CMAKE_SOURCE_DIR}/${gcov_name}"
" -: 0:Source:${source_file}"
)
endfunction()
foreach(I RANGE 0 ${CMAKE_ARGC})
if("${CMAKE_ARGV${I}}" MATCHES ".*\\.gcda")
set(gcda_file "${CMAKE_ARGV${I}}")
create_gcov_file(${gcda_file})
endif()
endforeach()