diff options
author | Dimitri Staessens <[email protected]> | 2017-11-14 20:46:50 +0100 |
---|---|---|
committer | Sander Vrijders <[email protected]> | 2017-11-14 21:43:27 +0100 |
commit | 05da75f1fb08719b373ba94a9faf5d5ce77d3874 (patch) | |
tree | e907261dd79c5b082f8bfd75cf6c30caddb60d01 /CMakeLists.txt | |
parent | 4c402ad8d7d38f00c2c3794675a0e99a03fca4be (diff) | |
download | ouroboros-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 <[email protected]>
Signed-off-by: Sander Vrijders <[email protected]>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 7 |
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) |