1
2# Coverage targets
3
4.PHONY: clean-gcno clean-gcda \
5	coverage-html generate-coverage-html clean-coverage-html \
6	coverage-gcovr generate-coverage-gcovr clean-coverage-gcovr
7
8clean-local: clean-gcno clean-coverage-html clean-coverage-gcovr
9
10clean-gcno:
11	@echo Removing old coverage instrumentation
12	-find -name '*.gcno' -print | xargs -r rm
13
14clean-gcda:
15	@echo Removing old coverage results
16	-find -name '*.gcda' -print | xargs -r rm
17
18if HAVE_GCOV
19coverage-html:
20	-$(MAKE) $(AM_MAKEFLAGS) -k check
21	$(MAKE) $(AM_MAKEFLAGS) generate-coverage-html
22
23generate-coverage-html:
24	@echo Collecting coverage data
25	$(LCOV) --directory $(top_builddir) --capture --output-file coverage.info --no-checksum --compat-libtool --derive-func-data
26	$(LCOV) --directory $(top_builddir) --output-file coverage.info --remove coverage.info "*.c" "*.h" "*.vapi"
27	LANG=C $(GENHTML) --output-directory $(top_builddir)/coveragereport --title "@PACKAGE_STRING@" --num-spaces 4 --legend --show-details $(top_builddir)/coverage.info
28
29clean-coverage-html: clean-gcda
30	-$(LCOV) --directory $(top_builddir) -z
31	-rm -rf $(top_builddir)/coverage.info $(top_builddir)/coveragereport
32
33if HAVE_GCOVR
34
35coverage-gcovr:
36	-$(MAKE) $(AM_MAKEFLAGS) -k check
37	$(MAKE) $(AM_MAKEFLAGS) generate-coverage-gcovr
38
39coverage-xml: coverage-gcovr
40
41generate-coverage-gcovr:
42	@echo Generating coverage GCOVR report
43	$(GCOVR) --xml -r $(top_builddir) -e "tests.*" -o $(top_builddir)/coverage.xml
44
45endif # HAVE_GCOVR
46
47endif # HAVE_GCOV
48
49clean-coverage-gcovr: clean-gcda
50	-rm -f $(top_builddir)/coverage.xml
51
52clean-coverage-xml: clean-coverage-gcovr
53