# ---- Variables ----

# We use variables separate from what CTest uses, because those have
# customization issues
set(COVERAGE_TRACE_COMMAND
	lcov -c -q -o "${PROJECT_BINARY_DIR}/coverage.info" -d
	"${PROJECT_BINARY_DIR}" --include "${PROJECT_SOURCE_DIR}/*"
	CACHE STRING
			"; separated command to generate a trace for the 'coverage' target"
)

set(COVERAGE_HTML_COMMAND
	genhtml --legend -f -q "${PROJECT_BINARY_DIR}/coverage.info" -p
	"${PROJECT_SOURCE_DIR}" -o "${PROJECT_BINARY_DIR}/coverage_html"
	CACHE
		STRING
		"; separated command to generate an HTML report for the 'coverage' target"
)

# ---- Coverage target ----

add_custom_target(
	coverage
	COMMAND ${COVERAGE_TRACE_COMMAND}
	COMMAND ${COVERAGE_HTML_COMMAND}
	COMMENT "Generating coverage report"
	VERBATIM
)
