diff --git a/SConscript b/SConscript index fda92d7..601a314 100644 --- a/SConscript +++ b/SConscript @@ -724,6 +724,7 @@ vars.Add('PYTHON', 'Python Executable', 'python') vars.Add('COMPILATIONDB_FILTER_FILES', 'Removes source files from the compilation DB that are not from the current' ' project.', config['COMPILATIONDB_FILTER_FILES']) vars.Add('SHOW_INCLUDES', 'Show include hierarchy (for debugging).', False) +vars.Add('ENABLE_ASAN', 'Enable address sanitization.', enable_asan) tools = ['default', 'compilation_db', 'unity_build'] if 'TOOLS' in config: @@ -881,7 +882,7 @@ if env['COMPILER_FAMILY'] == 'gcc' or env['COMPILER_FAMILY'] == 'clang': elif build_type == 'release': env.Append(CCFLAGS = ['-Wno-unused-variable', '-Wno-unused-parameter', '-Wno-unused-but-set-variable', '-Wno-unused-local-typedef', '-Wno-unused-local-typedefs', '-O2'], CPPDEFINES = [f'{config["PREPROCESSOR_PREFIX"]}_RELEASE', 'NDEBUG']) - if enable_asan: + if env['ENABLE_ASAN']: env.Append(CCFLAGS = ['-fsanitize=address', '-fno-omit-frame-pointer']) env.Append(LINKFLAGS = ['-fsanitize=address']) env.Append(DEPS_CXXFLAGS = ['-fsanitize=address', '-fno-omit-frame-pointer']) @@ -917,6 +918,9 @@ elif env['COMPILER_FAMILY'] == 'cl': env.Append(DEPS_LINKFLAGS = ['/DEBUG']) else: env.Append(CCFLAGS = ['/O2']) + + if env['ENABLE_ASAN']: + env.Append(CCFLAGS = ['/fsanitize=address']) if env['COMPILER_FAMILY'] == 'gcc': env.Append(CXXFLAGS = ['-Wno-volatile'])