From 8035b7f32033a41e829a7289dbbef3fd39863dc0 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Wed, 12 May 2021 20:31:41 +0200 Subject: [PATCH] cmake: Add target for obtaining local covarage reports --- CMakeLists.txt | 1 + cmake/gcovr.cmake | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 cmake/gcovr.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index b1571b1a..2c7627ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,6 +52,7 @@ mark_as_advanced( option( BUILD_WITH_CCACHE "Use ccache to speed up compilations" OFF ) option( BUILD_WITH_COVERAGE "Add compiler flags to generate coverage stats" OFF ) +include(cmake/gcovr.cmake REQUIRED) set( PACKAGE_BUGREPORT "http://github.com/exiv2/exiv2" ) set( PACKAGE_URL "https://exiv2.org") diff --git a/cmake/gcovr.cmake b/cmake/gcovr.cmake new file mode 100644 index 00000000..c787b884 --- /dev/null +++ b/cmake/gcovr.cmake @@ -0,0 +1,20 @@ +# Intentd usage +# cmake -DBUILD_WITH_COVERAGE=yes ../ +# make -j +# make tests +# make coverage + +if(BUILD_WITH_COVERAGE) + find_program (GCOVR gcovr) + + if(GCOVR) + file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/coverage_output ) + add_custom_command(OUTPUT _run_gcovr_parser + POST_BUILD + COMMAND ${GCOVR} --root ${CMAKE_SOURCE_DIR} --object-dir=${CMAKE_BINARY_DIR} --html --html-details -o coverage_output/coverage.html + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) + add_custom_target (coverage DEPENDS _run_gcovr_parser) + endif() + +endif(BUILD_WITH_COVERAGE)