From 3410933db3f60a029183c3631766977853cd8625 Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Tue, 31 Jan 2012 17:29:33 +0100 Subject: [PATCH] Cobertura code coverage report generation with gcovr added. --- CodeCoverage.cmake | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CodeCoverage.cmake b/CodeCoverage.cmake index e8ae7eaa972..cc3671a1aed 100644 --- a/CodeCoverage.cmake +++ b/CodeCoverage.cmake @@ -15,6 +15,7 @@ FIND_PROGRAM( GCOV_PATH gcov ) FIND_PROGRAM( LCOV_PATH lcov ) FIND_PROGRAM( GENHTML_PATH genhtml ) +FIND_PROGRAM( GCOVR_PATH gcovr) IF(NOT GCOV_PATH) MESSAGE(FATAL_ERROR "gcov not found! Aborting...") @@ -74,5 +75,27 @@ FUNCTION(SETUP_TARGET_FOR_COVERAGE _targetname _testrunner _outputname) COMMAND ; COMMENT "Open ./${_outputname}/index.html in your browser to view the coverage report." ) + + # This target produces a Jenkins readable Cobertura report + IF(GCOVR_PATH AND PYTHON_EXECUTABLE) + + ADD_CUSTOM_TARGET(${_targetname}_cobertura + + # Run tests + ${_testrunner} + + # Running gcovr + COMMAND ${GCOVR_PATH} -x -r ${CMAKE_SOURCE_DIR} -o ${_outputname}.xml + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + COMMENT "Running gcovr to produce Cobertura code coverage report." + ) + + # Show info where to find the report + ADD_CUSTOM_COMMAND(TARGET ${_targetname}_cobertura POST_BUILD + COMMAND ; + COMMENT "Cobertura code coverage report saved in ${_outputname}.xml." + ) + + ENDIF() # GCOVR_PATH AND PythonInterp_FOUND ENDFUNCTION() # SETUP_TARGET_FOR_COVERAGE -- GitLab