aboutsummaryrefslogtreecommitdiff
path: root/modules/ECMCoverageOption.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'modules/ECMCoverageOption.cmake')
-rw-r--r--modules/ECMCoverageOption.cmake36
1 files changed, 36 insertions, 0 deletions
diff --git a/modules/ECMCoverageOption.cmake b/modules/ECMCoverageOption.cmake
new file mode 100644
index 00000000..8d435de8
--- /dev/null
+++ b/modules/ECMCoverageOption.cmake
@@ -0,0 +1,36 @@
+#.rst:
+# ECMCoverageOption
+# --------------------
+#
+# Creates a BUILD_COVERAGE option, so the project can be built with code coverage
+# support.
+#
+# ::
+#
+# BUILD_COVERAGE
+#
+# If it's on, the project will be compiled with code coverage support, using
+# gcov. Otherwise, it will be built normally.
+#
+# ::
+#
+#
+#=============================================================================
+# Copyright 2014 Aleix Pol Gonzalez <aleixpol@kde.org>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file COPYING-CMAKE-SCRIPTS for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of extra-cmake-modules, substitute the full
+# License text for the above reference.)
+
+option(BUILD_COVERAGE "Build the project with gcov support" OFF)
+
+if(BUILD_COVERAGE)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov")
+endif()