diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 74c045f..bf6e173 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
@@ -11,6 +11,7 @@ option(AVOID_BINDING_REBUILD "AVOID_BINDING_REBUILD" OFF) | |||
11 | option(CATCH_ERRORS "CATCH_ERRORS" OFF) | 11 | option(CATCH_ERRORS "CATCH_ERRORS" OFF) |
12 | option(ENABLE_MEMCHECK "Build valgrind tests" OFF) | 12 | option(ENABLE_MEMCHECK "Build valgrind tests" OFF) |
13 | option(ENABLE_ASAN "Enable the address sanitizer" OFF) | 13 | option(ENABLE_ASAN "Enable the address sanitizer" OFF) |
14 | option(ENABLE_TSAN "Enable the thread sanitizer" OFF) | ||
14 | 15 | ||
15 | # ECM setup | 16 | # ECM setup |
16 | find_package(ECM 1.0.0 REQUIRED NO_MODULE) | 17 | find_package(ECM 1.0.0 REQUIRED NO_MODULE) |
@@ -38,6 +39,7 @@ find_package(KAsync REQUIRED 0.1.2) | |||
38 | find_package(LMDB REQUIRED 0.9) | 39 | find_package(LMDB REQUIRED 0.9) |
39 | 40 | ||
40 | if (${ENABLE_MEMCHECK}) | 41 | if (${ENABLE_MEMCHECK}) |
42 | message("Enabled memcheck") | ||
41 | find_program(MEMORYCHECK_COMMAND valgrind) | 43 | find_program(MEMORYCHECK_COMMAND valgrind) |
42 | if(NOT MEMORYCHECK_COMMAND) | 44 | if(NOT MEMORYCHECK_COMMAND) |
43 | message(FATAL_ERROR "valgrind not found!") | 45 | message(FATAL_ERROR "valgrind not found!") |
@@ -45,7 +47,8 @@ if (${ENABLE_MEMCHECK}) | |||
45 | set(MEMORYCHECK_COMMAND_OPTIONS "--trace-children=yes --leak-check=full") | 47 | set(MEMORYCHECK_COMMAND_OPTIONS "--trace-children=yes --leak-check=full") |
46 | endif() | 48 | endif() |
47 | 49 | ||
48 | if (ENABLE_ASAN) | 50 | if (${ENABLE_ASAN}) |
51 | message("Enabled ASAN") | ||
49 | set(SINK_ASAN_FLAG "-fsanitize=address -fPIE -fno-omit-frame-pointer -O1 ") | 52 | set(SINK_ASAN_FLAG "-fsanitize=address -fPIE -fno-omit-frame-pointer -O1 ") |
50 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SINK_ASAN_FLAG}") | 53 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SINK_ASAN_FLAG}") |
51 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SINK_ASAN_FLAG}") | 54 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SINK_ASAN_FLAG}") |
@@ -54,6 +57,16 @@ if (ENABLE_ASAN) | |||
54 | set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${SINK_ASAN_FLAG}") | 57 | set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${SINK_ASAN_FLAG}") |
55 | endif() | 58 | endif() |
56 | 59 | ||
60 | if (${ENABLE_TSAN}) | ||
61 | message("Enabled TSAN") | ||
62 | set(SINK_TSAN_FLAG "-fsanitize=thread -fPIE -fno-omit-frame-pointer -O1 ") | ||
63 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SINK_TSAN_FLAG}") | ||
64 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SINK_TSAN_FLAG}") | ||
65 | set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${SINK_TSAN_FLAG}") | ||
66 | set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${SINK_TSAN_FLAG}") | ||
67 | set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${SINK_TSAN_FLAG}") | ||
68 | endif() | ||
69 | |||
57 | 70 | ||
58 | #Clang-format support | 71 | #Clang-format support |
59 | add_custom_command( | 72 | add_custom_command( |