diff options
Diffstat (limited to '')
-rw-r--r-- | m4/pdns_enable_coverage.m4 | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/m4/pdns_enable_coverage.m4 b/m4/pdns_enable_coverage.m4 new file mode 100644 index 0000000..9e06468 --- /dev/null +++ b/m4/pdns_enable_coverage.m4 @@ -0,0 +1,32 @@ +AC_DEFUN([PDNS_ENABLE_COVERAGE], [ + AC_MSG_CHECKING([whether to enable code coverage]) + AC_ARG_ENABLE([coverage], + AS_HELP_STRING([--enable-coverage], + [enable code coverage @<:@default=no@:>@]), + [enable_coverage=$enableval], + [enable_coverage=no] + ) + AC_MSG_RESULT([$enable_coverage]) + + AS_IF([test "x$enable_coverage" = "xclang"], [ + dnl let's see if the clang++ specific format is supported, + dnl as it has a much lower overhead and is more accurate, + dnl see https://clang.llvm.org/docs/SourceBasedCodeCoverage.html + gl_COMPILER_OPTION_IF([-fprofile-instr-generate -fcoverage-mapping], [ + CFLAGS="$CFLAGS -DCOVERAGE -DCLANG_COVERAGE -fprofile-instr-generate -fcoverage-mapping" + CXXFLAGS="$CXXFLAGS -DCOVERAGE -DCLANG_COVERAGE -fprofile-instr-generate -fcoverage-mapping" + ], [ + AC_MSG_ERROR([$CXX does not support gathering coverage data in the clang format]) + ]) + ]) + + AS_IF([test "x$enable_coverage" = "xyes"], [ + gl_COMPILER_OPTION_IF([-fprofile-arcs -ftest-coverage], [ + CFLAGS="$CFLAGS -DCOVERAGE --coverage" + CXXFLAGS="$CXXFLAGS -DCOVERAGE --coverage" + LDFLAGS="$LDFLAGS --coverage" + ], [ + AC_MSG_ERROR([$CXX does not support gathering coverage data]) + ]) + ]) +]) |