Чистка функции для покрытия кода
This commit is contained in:
parent
abfce824d2
commit
d57bbeb634
@ -1,34 +1,38 @@
|
||||
function(add_code_coverage)
|
||||
list(GET ARGN 0 _target)
|
||||
|
||||
find_program(LCOV_EXE NAMES lcov)
|
||||
find_program(GENHTML_EXE NAMES genhtml)
|
||||
target_compile_options(${_target} PUBLIC "--coverage")
|
||||
get_target_property(LF ${_target} LINK_FLAGS)
|
||||
list(APPEND LF "--coverage")
|
||||
set_target_properties(${_target} PROPERTIES LINK_FLAGS ${LF})
|
||||
if(CMAKE_CXX_COMPILER_IS_GCC)
|
||||
find_program(LCOV_EXE NAMES lcov)
|
||||
find_program(GENHTML_EXE NAMES genhtml)
|
||||
target_compile_options(${_target} PUBLIC "--coverage")
|
||||
get_target_property(LF ${_target} LINK_FLAGS)
|
||||
string(APPEND LF " --coverage")
|
||||
set_target_properties(${_target} PROPERTIES LINK_FLAGS ${LF})
|
||||
|
||||
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}
|
||||
if(LCOV_EXE)
|
||||
add_custom_target(coverage-${_target}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND ${GENHTML_EXE}
|
||||
--output-directory
|
||||
"report-${_target}"
|
||||
"${_target}.lcov")
|
||||
add_dependencies(coverage-report-${_target} coverage-${_target})
|
||||
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()
|
||||
else()
|
||||
message("Only GCC is supported for code coverage")
|
||||
endif()
|
||||
endfunction()
|
||||
|
Loading…
Reference in New Issue
Block a user