Skip to content

Commit b0c1d46

Browse files
authored
perf: remove mismatch from flags when lcov < 2 (#127)
Signed-off-by: msclock <msclock@qq.com>
1 parent a83e800 commit b0c1d46

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

cmake/test/Coverage.cmake

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
103103
endif()
104104

105105
set(CODE_COVERAGE_LCOV_EXTRA_FLAGS
106-
"--ignore-errors=gcov,mismatch"
106+
"--ignore-errors=gcov,mismatch,mismatch"
107107
CACHE STRING "Extra command line flags to pass to lcov.")
108108

109109
set(CODE_COVERAGE_GCOVR_EXTRA_FLAGS
@@ -262,6 +262,31 @@ if(CODE_COVERAGE AND NOT CODE_COVERAGE_INITIALIZED)
262262
if(LCOV_PATH)
263263
add_custom_target(ccov-clean COMMAND ${LCOV_PATH} --directory
264264
${CMAKE_BINARY_DIR} --zerocounters)
265+
execute_process(
266+
COMMAND "${LCOV_PATH}" --version
267+
RESULT_VARIABLE _result
268+
OUTPUT_VARIABLE _output
269+
OUTPUT_STRIP_TRAILING_WHITESPACE)
270+
message(STATUS "_output: ${_output}")
271+
if(_result EQUAL 0 AND _output MATCHES " LCOV version ([0-9]+)")
272+
set(LCOV_MAJOR_VERSION "${CMAKE_MATCH_1}")
273+
if(LCOV_MAJOR_VERSION VERSION_LESS "2"
274+
AND CODE_COVERAGE_LCOV_EXTRA_FLAGS MATCHES "mismatch")
275+
message(
276+
WARNING
277+
"Does not support mismatch by lcov less 2 and remove params from ${CODE_COVERAGE_LCOV_EXTRA_FLAGS}..."
278+
)
279+
string(REPLACE [[mismatch]] "" CODE_COVERAGE_LCOV_EXTRA_FLAGS
280+
${CODE_COVERAGE_LCOV_EXTRA_FLAGS})
281+
set(CODE_COVERAGE_LCOV_EXTRA_FLAGS
282+
"${CODE_COVERAGE_LCOV_EXTRA_FLAGS}"
283+
CACHE STRING "Extra flags to pass to lcov" FORCE)
284+
message(
285+
STATUS
286+
"Final CODE_COVERAGE_LCOV_EXTRA_FLAGS: ${CODE_COVERAGE_LCOV_EXTRA_FLAGS}"
287+
)
288+
endif()
289+
endif()
265290
endif()
266291

267292
elseif(CMAKE_C_COMPILER_ID MATCHES [[MSVC]] OR CMAKE_CXX_COMPILER_ID MATCHES

0 commit comments

Comments
 (0)