From 94bc57213f9a8a74e9e7520de68d7bba7f42ea4c Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Thu, 19 Dec 2019 17:51:21 +0100 Subject: configure: Add switch for clang's "source-based" code coverage feature This adds instrumentation to the binaries. At the end of their execution, these will then write a file containing information which code was executed. This can be used for code coverage analysis. [ChangeLog][QtCore][configure] Add switch "-coverage source-based" to enable clang's "source-based" code coverage feature. This can be used for code coverage analysis. Change-Id: If31c6849aa797ff8820e041e85a492a14e2f1a6b Reviewed-by: Leena Miettinen Reviewed-by: Fabian Kosmale Reviewed-by: Alexandru Croitor --- mkspecs/common/clang.conf | 4 ++++ mkspecs/features/coverage.prf | 6 ++++++ 2 files changed, 10 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf index aead581478..2499c8b6d8 100644 --- a/mkspecs/common/clang.conf +++ b/mkspecs/common/clang.conf @@ -54,3 +54,7 @@ QMAKE_RANLIB_LTCG = true # No need to run, since llvm-ar has "s" QMAKE_CFLAGS_COVERAGE_TRACE_PC_GUARD = -fsanitize-coverage=trace-pc-guard QMAKE_CXXFLAGS_COVERAGE_TRACE_PC_GUARD = -fsanitize-coverage=trace-pc-guard QMAKE_LFLAGS_COVERAGE_TRACE_PC_GUARD = -fsanitize-coverage=trace-pc-guard + +QMAKE_CFLAGS_COVERAGE_SOURCE_BASED = -fprofile-instr-generate -fcoverage-mapping +QMAKE_CXXFLAGS_COVERAGE_SOURCE_BASED = -fprofile-instr-generate -fcoverage-mapping +QMAKE_LFLAGS_COVERAGE_SOURCE_BASED = -fprofile-instr-generate -fcoverage-mapping diff --git a/mkspecs/features/coverage.prf b/mkspecs/features/coverage.prf index b8b37e1b80..5ae746f0b7 100644 --- a/mkspecs/features/coverage.prf +++ b/mkspecs/features/coverage.prf @@ -5,3 +5,9 @@ coverage_trace_pc_guard { QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_COVERAGE_TRACE_PC_GUARD QMAKE_LFLAGS += $$QMAKE_LFLAGS_COVERAGE_TRACE_PC_GUARD } + +coverage_source_based { + QMAKE_CFLAGS += $$QMAKE_CFLAGS_COVERAGE_SOURCE_BASED + QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_COVERAGE_SOURCE_BASED + QMAKE_LFLAGS += $$QMAKE_LFLAGS_COVERAGE_SOURCE_BASED +} -- cgit v1.2.3