1
by Alexandre Abreu
Initial protype commit |
1 |
# Coverage
|
2 |
CONFIG(coverage) { |
|
3 |
OBJECTS_DIR = |
|
4 |
MOC_DIR = |
|
5 |
TOP_SRC_DIR = $$PWD |
|
6 |
||
7 |
LIBS += -lgcov |
|
8 |
QMAKE_CXXFLAGS += --coverage |
|
9 |
QMAKE_LDFLAGS += --coverage |
|
10 |
||
11 |
QMAKE_EXTRA_TARGETS += coverage cov |
|
12 |
QMAKE_EXTRA_TARGETS += clean-gcno clean-gcda coverage-html \ |
|
13 |
generate-coverage-html clean-coverage-html coverage-gcovr \ |
|
14 |
generate-gcovr generate-coverage-gcovr clean-coverage-gcovr |
|
15 |
||
16 |
clean-gcno.commands = \ |
|
17 |
"@echo Removing old coverage instrumentation"; \ |
|
18 |
"find -name '*.gcno' -print | xargs -r rm"
|
|
19 |
||
20 |
clean-gcda.commands = \ |
|
21 |
"@echo Removing old coverage results"; \ |
|
22 |
"find -name '*.gcda' -print | xargs -r rm"
|
|
23 |
||
24 |
coverage-html.depends = clean-gcda check generate-coverage-html |
|
25 |
||
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" |
|
32 |
||
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"
|
|
37 |
||
38 |
coverage-gcovr.depends = clean-gcda check generate-coverage-gcovr |
|
39 |
||
40 |
generate-coverage-gcovr.commands = \ |
|
41 |
"@echo Generating coverage GCOVR report"; \ |
|
42 |
"gcovr -x -r $${TOP_SRC_DIR} -o $${TOP_SRC_DIR}/coverage.xml -e \".*/moc_.*\" -e \"tests/.*\" -e \".*\\.h\"" |
|
43 |
||
44 |
clean-coverage-gcovr.depends = clean-gcda |
|
45 |
clean-coverage-gcovr.commands = \ |
|
46 |
"rm -rf $${TOP_SRC_DIR}/coverage.xml"
|
|
47 |
||
48 |
QMAKE_CLEAN += *.gcda *.gcno coverage.info coverage.xml |
|
49 |
}
|