add_global_arguments('-DDEMO_DIR="@0@/example/resource/"'.format(meson.current_source_dir()), language : 'cpp')
-compiler_flags = ['-Wall','-std=c++11', '-fvisibility=hidden']
+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']
subdir('inc')
subdir('src')
-subdir('example')
+if get_option('example') == true
+ subdir('example')
+endif
if get_option('test') == true
subdir('test')