diff --git a/CMakeLists.txt b/CMakeLists.txt index 45368440a6..76b0a39792 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,8 @@ project(exiv2 include(cmake/mainSetup.cmake REQUIRED) include(CTest) +include(cmake/gcovr.cmake REQUIRED) + # options and their default values option( BUILD_SHARED_LIBS "Build exiv2lib as a shared library" ON ) option( EXIV2_ENABLE_XMP "Build with XMP metadata support" ON ) diff --git a/cmake/gcovr.cmake b/cmake/gcovr.cmake new file mode 100644 index 0000000000..3c1e4067f3 --- /dev/null +++ b/cmake/gcovr.cmake @@ -0,0 +1,15 @@ +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)