Merge lp:~michihenning/cmake-extras/cmake-extras-coverage into lp:cmake-extras

Proposed by Michi Henning on 2015-05-01
Status: Merged
Approved by: Pete Woods on 2015-05-01
Approved revision: 18
Merged at revision: 17
Proposed branch: lp:~michihenning/cmake-extras/cmake-extras-coverage
Merge into: lp:cmake-extras
Diff against target: 43 lines (+17/-5)
1 file modified
EnableCoverageReport.cmake (+17/-5)
To merge this branch: bzr merge lp:~michihenning/cmake-extras/cmake-extras-coverage
Reviewer Review Type Date Requested Status
Pete Woods 2015-05-01 Approve on 2015-05-01
Review via email: mp+258021@code.launchpad.net

Commit Message

Added clean-coverage target

Added -g --coverage flags to compile and link flags.

Description of the Change

Added clean-coverage target.
Added -g --coverage flags to compile and link flags.

To post a comment you must log in.
18. By Michi Henning on 2015-05-01

Added coverage flags to link phase for targets in the TESTS parameter.

Pete Woods (pete-woods) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'EnableCoverageReport.cmake'
2--- EnableCoverageReport.cmake 2014-05-27 12:26:14 +0000
3+++ EnableCoverageReport.cmake 2015-05-01 15:23:44 +0000
4@@ -60,7 +60,8 @@
5 MESSAGE(STATUS "Cannot enable coverage targets because neither lcov nor gcovr are found.")
6 ENDIF()
7
8- IF(CMAKE_COMPILER_IS_GNUCXX AND TOOL_FOUND AND "${enable_coverage}")
9+ STRING(TOLOWER "${CMAKE_BUILD_TYPE}" LOWER_CMAKE_BUILD_TYPE)
10+ IF(CMAKE_COMPILER_IS_GNUCXX AND TOOL_FOUND AND "${LOWER_CMAKE_BUILD_TYPE}" STREQUAL "coverage")
11
12 MESSAGE(STATUS "Coverage support enabled for targets: ${ENABLE_COVERAGE_REPORT_TARGETS}")
13
14@@ -70,9 +71,16 @@
15 SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_CONFIGURATION_TYPES} coverage PARENT_SCOPE)
16
17 # instrument targets
18- SET_TARGET_PROPERTIES(${ENABLE_COVERAGE_REPORT_TARGETS} PROPERTIES COMPILE_FLAGS --coverage
19- LINK_FLAGS --coverage)
20-
21+
22+ FOREACH(T ${ENABLE_COVERAGE_REPORT_TARGETS})
23+ SET_PROPERTY(TARGET ${T} APPEND_STRING PROPERTY COMPILE_FLAGS "-g --coverage ")
24+ SET_PROPERTY(TARGET ${T} APPEND_STRING PROPERTY LINK_FLAGS "-g --coverage ")
25+ ENDFOREACH()
26+
27+ FOREACH(T ${ENABLE_COVERAGE_REPORT_TESTS})
28+ SET_PROPERTY(TARGET ${T} APPEND_STRING PROPERTY LINK_FLAGS "-g --coverage ")
29+ ENDFOREACH()
30+
31 # html report
32 IF (LCOV_FOUND)
33
34@@ -154,4 +162,8 @@
35
36 ENDIF()
37
38-ENDFUNCTION()
39+ # This gets rid of any stale .gcda files. Run this if a running a binary causes lots of
40+ # messages about about a "merge mismatch for summaries".
41+ ADD_CUSTOM_TARGET(clean-coverage COMMAND find ${CMAKE_BINARY_DIR} -name '*.gcda' | xargs rm -f)
42+
43+ENDFUNCTION()

Subscribers

People subscribed via source and target branches

to all changes: