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)