@@ -76,49 +76,19 @@ ENDIF()
76
76
77
77
# Compile Code Coverage if Specified with Tests
78
78
IF ( FDPAPI_CODE_COVERAGE AND FDPAPI_BUILD_TESTS )
79
- MESSAGE ( STATUS "[Coverage]" )
80
- SET ( COVERAGE_COMPILER_FLAGS "--coverage -fprofile-arcs -ftest-coverage" )
81
- SET ( CMAKE_CXX_FLAGS "-std=gnu++17 -O0 -Wall -Wextra -Werror ${COVERAGE_COMPILER_FLAGS} ${CMAKE_CXX_FLAGS} " )
82
- SET ( CMAKE_C_FLAGS "-O0 -Wall -Wextra ${COVERAGE_COMPILER_FLAGS} ${CMAKE_C_FLAGS} " )
83
- MESSAGE ( "\t CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS} " )
84
- MESSAGE ( "\t CMAKE_C_FLAGS: ${CMAKE_C_FLAGS} " )
85
-
86
-
87
- find_program ( LCOV_PATH NAMES lcov lcov.bat lcov.exe lcov.perl)
88
- find_program ( GCOV_PATH gcov )
89
-
90
- set (LCOV_EXCLUDES "build/*" "/usr*" )
91
-
92
- add_custom_target (coverage
93
-
94
- # Cleanup lcov
95
- COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} -directory . -b ${PROJECT_SOURCE_DIR} --zerocounters
96
-
97
- # Create baseline to make sure untouched files show up in the report
98
- COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} -c -i -d . -b ${PROJECT_SOURCE_DIR} -o ${FDPAPI} .base
99
-
100
- # Run executables
101
- COMMAND ${CMAKE_BINARY_DIR} /test /${FDPAPI} -tests ${COV_TEST_FLAGS}
102
-
103
- # Capturing lcov counters and generating report
104
- COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} --directory . -b ${PROJECT_SOURCE_DIR} --capture --output -file ${FDPAPI} .capture
105
-
106
- # add baseline counters
107
- COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} -a ${FDPAPI} .base -a ${FDPAPI} .capture --output -file ${FDPAPI} .total
108
-
109
- # filter collected data to final coverage report and merge outputs
110
- COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} --remove ${FDPAPI} .total ${LCOV_EXCLUDES} --output -file ${FDPAPI} .info
111
-
112
- # Set output files as GENERATED (will be removed on 'make clean')
113
- BYPRODUCTS
114
- ${FDPAPI} .base
115
- ${FDPAPI} .capture
116
- ${FDPAPI} .total
117
- ${FDPAPI} .info
118
- ${FDPAPI} # report directory
119
-
120
- WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
121
- VERBATIM # Protect arguments to commands
122
- COMMENT "Resetting code coverage counters to zero.\n Processing code coverage counters and generating report."
123
- )
79
+ if (CMAKE_COMPILER_IS_GNUCXX)
80
+ LIST (APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR} /cmake_modules" )
81
+ include (CodeCoverage)
82
+ APPEND_COVERAGE_COMPILER_FLAGS()
83
+
84
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 --coverage" )
85
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0" )
86
+
87
+ #set(COVERAGE_EXCLUDES 'build/*' 'usr/*')
88
+ #set(Coverage_BASE_DIRECTORY ${CMAKE_SOURCE_DIR})
89
+ setup_target_for_coverage_gcovr_sonar(NAME coverage
90
+ EXECUTABLE bin/${FDPAPI} -tests
91
+ DEPENDENCIES ${FDPAPI} -tests
92
+ BASE_DIRECTORY ${CMAKE_SOURCE_DIR} )
93
+ endif ()
124
94
ENDIF ()
0 commit comments