8
QMAKE_CXXFLAGS += --coverage
9
QMAKE_LDFLAGS += --coverage
11
QMAKE_EXTRA_TARGETS += coverage cov
12
QMAKE_EXTRA_TARGETS += clean-gcno clean-gcda coverage-html \
13
generate-coverage-html clean-coverage-html coverage-xml \
14
generate-gcovr generate-coverage-xml clean-coverage-xml
16
clean-gcno.commands = \
17
"@echo Removing old coverage instrumentation"; \
18
"find -name '*.gcno' -print | xargs -r rm"
20
clean-gcda.commands = \
21
"@echo Removing old coverage results"; \
22
"find -name '*.gcda' -print | xargs -r rm"
24
coverage-html.depends = clean-gcda check generate-coverage-html
26
generate-coverage-html.commands = \
27
"@echo Collecting coverage data"; \
28
"lcov --directory $${TOP_SRC_DIR} --capture --output-file coverage.info --no-checksum --compat-libtool"; \
29
"lcov --extract coverage.info \"*/src/*.cpp\" -o coverage.info"; \
30
"lcov --remove coverage.info \"moc_*.cpp\" -o coverage.info"; \
31
"LANG=C genhtml --prefix $${TOP_SRC_DIR} --output-directory coverage-html --title \"Code Coverage\" --legend --show-details coverage.info"
33
clean-coverage-html.depends = clean-gcda
34
clean-coverage-html.commands = \
35
"lcov --directory $${TOP_SRC_DIR} -z"; \
36
"rm -rf coverage.info coverage-html"
38
coverage-xml.depends = clean-gcda check generate-coverage-xml
40
generate-coverage-xml.commands = \
41
"@echo Generating coverage GCOVR report"; \
42
"gcovr -x -r $${TOP_SRC_DIR} -o $${TOP_SRC_DIR}/coverage.xml -e \".*/moc_.*\" -e \"unittests/.*\" -e \".*\\.h\""
44
clean-coverage-xml.depends = clean-gcda
45
clean-coverage-xml.commands = \
46
"rm -rf $${TOP_SRC_DIR}/coverage.xml"
48
QMAKE_CLEAN += *.gcda *.gcno coverage.info coverage.xml