diff --git a/SConscript b/SConscript index 4ac0dd8..4b7ce77 100644 --- a/SConscript +++ b/SConscript @@ -97,6 +97,8 @@ Import('config') if not config.get('PROJECT_NAME'): config['PROJECT_NAME'] = 'PROJECT' +if not config.get('CXX_STANDARD'): + config['CXX_STANDARD'] = 'c++20' if not config.get('PREPROCESSOR_PREFIX'): config['PREPROCESSOR_PREFIX'] = config['PROJECT_NAME'].upper() # TODO: may be nicer? @@ -266,7 +268,7 @@ elif unity_mode == 'stress': # compile everything in one single file to stress t # setup compiler specific options if env['COMPILER_FAMILY'] == 'gcc' or env['COMPILER_FAMILY'] == 'clang': env.Append(CCFLAGS = ['-Wall', '-Wextra', '-Werror', '-Wstrict-aliasing', '-pedantic']) - env.Append(CXXFLAGS = ['-std=c++20']) + env.Append(CXXFLAGS = [f'-std={config["CXX_STANDARD"]}']) if build_type != 'release': env.Append(LINKFLAGS = [f'-Wl,-rpath,{env["LIB_DIR"]}']) env['LINKCOM'] = env['LINKCOM'].replace('$_LIBFLAGS', '-Wl,--start-group $_LIBFLAGS -Wl,--end-group') @@ -299,7 +301,7 @@ if env['COMPILER_FAMILY'] == 'gcc' or env['COMPILER_FAMILY'] == 'clang': elif env['COMPILER_FAMILY'] == 'cl': # C4201: nonstandard extension used : nameless struct/union - I use it and want to continue using it # C4127: conditional expression is constant - some libs (CRC, format) don't compile with this enabled # TODO: fix? - env.Append(CCFLAGS = ['/W4', '/WX', '/wd4201', '/wd4127', '/std:c++20', '/permissive-', '/EHsc', '/FS', '/Zc:char8_t']) + env.Append(CCFLAGS = ['/W4', '/WX', '/wd4201', '/wd4127', f'/std:{config["CXX_STANDARD"]}', '/permissive-', '/EHsc', '/FS', '/Zc:char8_t']) env.Append(CPPDEFINES = ['_CRT_SECURE_NO_WARNINGS']) # I'd like to not use MSVC specific versions of functions because they are "safer" ... if build_type == 'debug': env.Append(CCFLAGS = ['/Od', '/Zi'], LINKFLAGS = ' /DEBUG')