aboutsummaryrefslogtreecommitdiff
path: root/modules/ECMEnableSanitizers.cmake
diff options
context:
space:
mode:
authorAlex Merry <alex.merry@kde.org>2015-02-06 11:50:31 +0000
committerAlex Merry <alex.merry@kde.org>2015-02-06 11:51:57 +0000
commitce678b32de12e6bb3c2b470111a3fcbadcca3a38 (patch)
tree15155e7e77a78ac27ffa139abfdd5231096c17d0 /modules/ECMEnableSanitizers.cmake
parenta1d6d8f7259ade901a87b33edbef8b31bffb5e26 (diff)
downloadextra-cmake-modules-ce678b32de12e6bb3c2b470111a3fcbadcca3a38.tar.gz
extra-cmake-modules-ce678b32de12e6bb3c2b470111a3fcbadcca3a38.tar.bz2
Add missing documentation.
Three modules (ECMCoverageOption, ECMEnableSanitizers and ECMGeneratePkgConfigFile) were not being documented. This commit fixes that situation.
Diffstat (limited to 'modules/ECMEnableSanitizers.cmake')
-rw-r--r--modules/ECMEnableSanitizers.cmake65
1 files changed, 35 insertions, 30 deletions
diff --git a/modules/ECMEnableSanitizers.cmake b/modules/ECMEnableSanitizers.cmake
index 568fa397..d55b2525 100644
--- a/modules/ECMEnableSanitizers.cmake
+++ b/modules/ECMEnableSanitizers.cmake
@@ -2,9 +2,10 @@
# ECMEnableSanitizers
# -------------------
#
-# Enable compiler sanitizer flags
+# Enable compiler sanitizer flags.
+#
+# The following sanitizers are supported:
#
-# The following sanitizers are supported :
# - Address Sanitizer
# - Memory Sanitizer
# - Thread Sanitizer
@@ -14,52 +15,56 @@
# All of them are implemented in Clang, depending on your version, and
# there is an work in progress in GCC, where some of them are currently
# implemented.
-# This module will check your current compiler version to see if it support
-# the sanitizers that you want to enable
#
-# How to use it ?
-# ---------------
-# This module is included in KDECompilerSettings. Therefore you don't have
-# to change your CMakeLists.txt
+# This module will check your current compiler version to see if it
+# supports the sanitizers that you want to enable
+#
+# Usage
+# =====
+#
+# Simply add::
+#
+# include(ECMEnableSanitizers)
#
-# It introduce a new cached variable :
-# ECM_ENABLE_SANITIZERS
+# to your ``CMakeLists.txt``. Note that this module is included in
+# KDECompilerSettings, so projects using that module do not need to also
+# include this one.
+#
+# The sanitizers are not enabled by default. Instead, you must set
+# ``ECM_ENABLE_SANITIZERS`` (either in your ``CMakeLists.txt`` or on the
+# command line) to a semicolon-separated list of sanitizers you wish to enable.
+# The options are:
#
-# which can take the following values :
# - address
# - memory
# - thread
# - leak
# - undefined
#
-# You can enable two sanitizers in the same build, depending on their
-# compatibility by separating each one with a semicolon :
-# ECM_ENABLE_SANITIZERS='address;undefined'
+# The sanitizers "address", "memory" and "thread" are mutually exclusive. You
+# cannot enable two of them in the same build.
#
+# "leak" requires the "address" sanitizer.
#
-# The sanitizers `address`, `memory` and `thread` are mutually exclusive.
-# You cannot enable two of them in the same build.
+# .. note::
#
-# `undefined` can be used with every other sanitizers
+# To reduce the overhead induced by the instrumentation of the sanitizers, it
+# is advised to enable compiler optimizations (``-O1`` or higher).
#
-# `leak` can be enable with the `address` sanitizer.
+# Example
+# =======
#
-# Finally, to reduce the overhead induced by the instrumentation of the
-# sanitizers, it is advised to use -O1, or higher to improve the performances.
+# This is an example of usage::
#
-# Example
-# -------
-# This is an example of usage :
-# mkdir _build
-# cd _build
-# cmake -DECM_ENABLE_SANITIZERS='address' ..
+# mkdir build
+# cd build
+# cmake -DECM_ENABLE_SANITIZERS='address;leak;undefined' ..
#
-# If you want to use multiple sanitizers
+# .. note::
#
-# cmake -DECM_ENABLE_SANITIZERS='address;leak;undefined' ..
+# Most of the sanitizers will require Clang. To enable it, use::
#
-# => Most of the sanitizers will require Clang. To enable it, use :
-# -DCMAKE_CXX_COMPILER=clang++
+# -DCMAKE_CXX_COMPILER=clang++
#
# Since 1.3.0.