cmlib/CMLibCodeCoverage.cmake

32 lines
1.1 KiB
CMake
Raw Normal View History

2019-10-08 13:12:18 +00:00
function(add_code_coverage)
list(GET ARGN 0 _target)
find_program(LCOV_EXE NAMES lcov)
find_program(GENHTML_EXE NAMES genhtml)
2019-10-08 13:18:08 +00:00
target_compile_options(${_target} PUBLIC "--coverage")
2019-10-08 13:12:18 +00:00
if(LCOV_EXE)
add_custom_target(coverage-${_target}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND ${LCOV_EXE}
--test-name
${_target}
--output
"${_target}.lcov"
--capture
--directory
${CMAKE_BINARY_DIR})
add_dependencies(coverage-${_target} ${_target})
if(GENHTML_EXE)
add_custom_target(coverage-report-${_target}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND ${GENHTML_EXE}
--output-directory
"report-${_target}"
"${_target}.lcov")
add_dependencies(coverage-report-${_target} coverage-${_target})
endif()
endif()
endfunction()