compiler_flags = ['-Wall', '-O2', '-std=c++14', '-fvisibility=hidden']
+if get_option('asan') == true
+ compiler_flags += ['-fsanitize=address']
+ add_global_link_arguments('-fsanitize=address', language: 'cpp')
+endif
+
+if get_option('msan') == true
+ compiler_flags += ['-fsanitize=memory']
+ add_global_link_arguments('-fsanitize=memory', language: 'cpp')
+endif
+
+if get_option('tsan') == true
+ compiler_flags += ['-fsanitize=thread']
+ add_global_link_arguments('-fsanitize=thread', language: 'cpp')
+endif
+
+
if (build_machine.system() == 'linux')
compiler_flags += ['-pthread']
add_global_link_arguments('-pthread', language: 'cpp')
type: 'boolean',
value: false,
description: 'enable text module')
+
+
+option('asan',
+ type: 'boolean',
+ value: false,
+ description: 'enable adress sanitizer')
+
+
+option('msan',
+ type: 'boolean',
+ value: false,
+ description: 'enable memory sanitizer')
+
+
+option('tsan',
+ type: 'boolean',
+ value: false,
+ description: 'enable thread sanitizer')