summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri.staessens@ugent.be>2017-11-14 20:46:50 +0100
committerSander Vrijders <sander.vrijders@ugent.be>2017-11-14 21:43:27 +0100
commit05da75f1fb08719b373ba94a9faf5d5ce77d3874 (patch)
treee907261dd79c5b082f8bfd75cf6c30caddb60d01 /CMakeLists.txt
parent4c402ad8d7d38f00c2c3794675a0e99a03fca4be (diff)
downloadouroboros-05da75f1fb08719b373ba94a9faf5d5ce77d3874.tar.gz
ouroboros-05da75f1fb08719b373ba94a9faf5d5ce77d3874.zip
build: Add options for debug builds with sanitizer
This adds three build types, DebugASan, DebugTSan and DebugLSan that enable the Address, Thread and Leak Sanitizer by setting the fsanitize flag to the compiler. This option is supported by both gcc and clang. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt7
1 files changed, 7 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f23925fe..f5836217 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -70,6 +70,13 @@ test_and_set_c_compiler_flag_global(-fmax-errors=5)
if (CMAKE_BUILD_TYPE STREQUAL "Release")
test_and_set_c_compiler_flag_global(-O3)
endif ()
+if (CMAKE_BUILD_TYPE STREQUAL "DebugASan")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address")
+elseif (CMAKE_BUILD_TYPE STREQUAL "DebugTSan")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
+elseif (CMAKE_BUILD_TYPE STREQUAL "DebugLSan")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=leak")
+endif ()
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/ouroboros-dev.pc.in"
"${CMAKE_CURRENT_BINARY_DIR}/ouroboros-dev.pc" @ONLY)