From c8e1e4f38f4a1a19e6cb54546cc50723d473802d Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Sun, 1 Dec 2024 20:03:07 -0500 Subject: [PATCH] refactor: rm unneed macro to flatten code coverage logic --- cmake/Libraries.cmake | 66 +++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 40 deletions(-) diff --git a/cmake/Libraries.cmake b/cmake/Libraries.cmake index 53b630002..cef4a4ed5 100644 --- a/cmake/Libraries.cmake +++ b/cmake/Libraries.cmake @@ -30,7 +30,32 @@ macro(configure_libs) configure_openssl() option(ENABLE_COVERAGE "Enable test coverage" OFF) - configure_coverage() + if(ENABLE_COVERAGE) + message(STATUS "Enabling code coverage") + include(cmake/CodeCoverage.cmake) + append_coverage_compiler_flags() + set(test_exclude subprojects/* build/* src/test/*) + set(test_src ${PROJECT_SOURCE_DIR}/src) + + # Apparently solves the bug in gcov where it returns negative counts and confuses gcovr. + # > Got negative hit value in gcov line 'branch 2 taken -1' caused by a bug in gcov tool + # Bug report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68080 + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-update=atomic") + + setup_target_for_coverage_gcovr_xml( + NAME coverage-integtests + EXECUTABLE integtests + BASE_DIRECTORY ${test_src} + EXCLUDE ${test_exclude} + ) + + setup_target_for_coverage_gcovr_xml( + NAME coverage-unittests + EXECUTABLE unittests + BASE_DIRECTORY ${test_src} + EXCLUDE ${test_exclude} + ) + endif() endmacro() @@ -372,42 +397,3 @@ macro(configure_openssl) endif() endmacro() - -macro(configure_coverage) - - if(ENABLE_COVERAGE) - message(STATUS "Enabling code coverage") - include(cmake/CodeCoverage.cmake) - append_coverage_compiler_flags() - set(test_exclude subprojects/* build/* src/test/*) - set(test_src ${PROJECT_SOURCE_DIR}/src) - - # Apparently solves the bug in gcov where it returns negative counts and confuses gcovr. - # > Got negative hit value in gcov line 'branch 2 taken -1' caused by a bug in gcov tool - # Bug report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68080 - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-update=atomic") - - setup_target_for_coverage_gcovr_xml( - NAME - coverage-integtests - EXECUTABLE - integtests - BASE_DIRECTORY - ${test_src} - EXCLUDE - ${test_exclude}) - - setup_target_for_coverage_gcovr_xml( - NAME - coverage-unittests - EXECUTABLE - unittests - BASE_DIRECTORY - ${test_src} - EXCLUDE - ${test_exclude}) - - else() - message(STATUS "Code coverage is disabled") - endif() -endmacro()