diff --git a/cmake/tools.cmake b/cmake/tools.cmake index 2364da9..be6a7c6 100644 --- a/cmake/tools.cmake +++ b/cmake/tools.cmake @@ -10,8 +10,10 @@ include(${CMAKE_CURRENT_LIST_DIR}/CPM.cmake) # enables sanitizers support using the the `USE_SANITIZER` flag available values are: Address, # Memory, MemoryWithOrigins, Undefined, Thread, Leak, 'Address;Undefined' -if(USE_SANITIZER OR USE_STATIC_ANALYZER) - CPMAddPackage("gh:StableCoder/cmake-scripts#1f822d1fc87c8d7720c074cde8a278b44963c354") +if(USE_SANITIZER OR USE_STATIC_ANALYZER OR CODE_COVERAGE) + CPMAddPackage("gh:StableCoder/cmake-scripts#1d4bcb41000e7a6a0e6ee1350d91f84f03c14320") + + include(${cmake-scripts_SOURCE_DIR}/code-coverage.cmake) if(USE_SANITIZER) include(${cmake-scripts_SOURCE_DIR}/sanitizers.cmake) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 68e6cf0..70d140a 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -7,6 +7,8 @@ project(GreeterTests LANGUAGES CXX) option(ENABLE_TEST_COVERAGE "Enable test coverage" OFF) option(TEST_INSTALLED_VERSION "Test the version found by find_package" OFF) +set(CODE_COVERAGE ${ENABLE_TEST_COVERAGE}) + # --- Import tools ---- include(../cmake/tools.cmake) @@ -53,7 +55,5 @@ doctest_discover_tests(GreeterTests) # ---- code coverage ---- -if(ENABLE_TEST_COVERAGE) - target_compile_options(Greeter PUBLIC -O0 -g -fprofile-arcs -ftest-coverage) - target_link_options(Greeter PUBLIC -fprofile-arcs -ftest-coverage) -endif() +target_code_coverage(Greeter) +target_code_coverage(GreeterTests AUTO) \ No newline at end of file