summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt15
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)
11option(CATCH_ERRORS "CATCH_ERRORS" OFF) 11option(CATCH_ERRORS "CATCH_ERRORS" OFF)
12option(ENABLE_MEMCHECK "Build valgrind tests" OFF) 12option(ENABLE_MEMCHECK "Build valgrind tests" OFF)
13option(ENABLE_ASAN "Enable the address sanitizer" OFF) 13option(ENABLE_ASAN "Enable the address sanitizer" OFF)
14option(ENABLE_TSAN "Enable the thread sanitizer" OFF)
14 15
15# ECM setup 16# ECM setup
16find_package(ECM 1.0.0 REQUIRED NO_MODULE) 17find_package(ECM 1.0.0 REQUIRED NO_MODULE)
@@ -38,6 +39,7 @@ find_package(KAsync REQUIRED 0.1.2)
38find_package(LMDB REQUIRED 0.9) 39find_package(LMDB REQUIRED 0.9)
39 40
40if (${ENABLE_MEMCHECK}) 41if (${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")
46endif() 48endif()
47 49
48if (ENABLE_ASAN) 50if (${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}")
55endif() 58endif()
56 59
60if (${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}")
68endif()
69
57 70
58#Clang-format support 71#Clang-format support
59add_custom_command( 72add_custom_command(