Added a new SCons configuration variable 'warning_flags'
This allows use of more extensive warning settings for the code that's actually part of Cantera without generating excessive warnings on code automatically generated code (e.g. f2c) or code that isn't part of Cantera proper (e.g. gtest, libexecstream).
This commit is contained in:
parent
9fdb345fdd
commit
04fb86b1ea
4 changed files with 19 additions and 5 deletions
19
SConstruct
19
SConstruct
|
|
@ -187,36 +187,40 @@ defaults.debugCcFlags = ''
|
||||||
defaults.noDebugCcFlags = ''
|
defaults.noDebugCcFlags = ''
|
||||||
defaults.debugLinkFlags = ''
|
defaults.debugLinkFlags = ''
|
||||||
defaults.noDebugLinkFlags = ''
|
defaults.noDebugLinkFlags = ''
|
||||||
|
defaults.warningFlags = ''
|
||||||
|
|
||||||
if env['CC'] == 'gcc' or env['CC'] == 'llvm-gcc':
|
if env['CC'] == 'gcc' or env['CC'] == 'llvm-gcc':
|
||||||
defaults.cxxFlags = '-ftemplate-depth-128'
|
defaults.cxxFlags = '-ftemplate-depth-128'
|
||||||
defaults.ccFlags = '-Wall -Wno-deprecated-declarations'
|
|
||||||
defaults.debugCcFlags = '-g'
|
defaults.debugCcFlags = '-g'
|
||||||
defaults.noOptimizeCcFlags = '-O0 -fno-inline'
|
defaults.noOptimizeCcFlags = '-O0 -fno-inline'
|
||||||
defaults.optimizeCcFlags = '-O3 -DNDEBUG -finline-functions -Wno-inline'
|
defaults.optimizeCcFlags = '-O3 -DNDEBUG -finline-functions -Wno-inline'
|
||||||
|
defaults.warningFlags = '-Wall -Wno-deprecated-declarations'
|
||||||
|
|
||||||
elif env['CC'] == 'cl': # Visual Studio
|
elif env['CC'] == 'cl': # Visual Studio
|
||||||
defaults.cxxFlags = '/EHsc'
|
defaults.cxxFlags = '/EHsc'
|
||||||
defaults.ccFlags = ' '.join(['/MD', '/nologo', '/W3', '/Zc:wchar_t', '/Zc:forScope',
|
defaults.ccFlags = ' '.join(['/MD', '/nologo', '/Zc:wchar_t', '/Zc:forScope',
|
||||||
'/D_SCL_SECURE_NO_WARNINGS', '/D_CRT_SECURE_NO_WARNINGS', '/wd4996'])
|
'/D_SCL_SECURE_NO_WARNINGS', '/D_CRT_SECURE_NO_WARNINGS', '/wd4996'])
|
||||||
defaults.debugCcFlags = '/Zi /Fd${TARGET}.pdb'
|
defaults.debugCcFlags = '/Zi /Fd${TARGET}.pdb'
|
||||||
defaults.noOptimizeCcFlags = '/Od /Ob0'
|
defaults.noOptimizeCcFlags = '/Od /Ob0'
|
||||||
defaults.optimizeCcFlags = '/O2 /DNDEBUG'
|
defaults.optimizeCcFlags = '/O2 /DNDEBUG'
|
||||||
defaults.debugLinkFlags = '/DEBUG'
|
defaults.debugLinkFlags = '/DEBUG'
|
||||||
|
defaults.warningFlags = '/W3'
|
||||||
|
|
||||||
elif env['CC'] == 'icc':
|
elif env['CC'] == 'icc':
|
||||||
defaults.cxxFlags = '-ftemplate-depth-128'
|
defaults.cxxFlags = '-ftemplate-depth-128'
|
||||||
defaults.ccFlags = '-Wcheck -vec-report0 -diag-disable 1478'
|
defaults.ccFlags = '-vec-report0 -diag-disable 1478'
|
||||||
defaults.debugCcFlags = '-g'
|
defaults.debugCcFlags = '-g'
|
||||||
defaults.noOptimizeCcFlags = '-O0 -fno-inline'
|
defaults.noOptimizeCcFlags = '-O0 -fno-inline'
|
||||||
defaults.optimizeCcFlags = '-O3 -finline-functions -DNDEBUG'
|
defaults.optimizeCcFlags = '-O3 -finline-functions -DNDEBUG'
|
||||||
|
defaults.warningFlags = '-Wcheck'
|
||||||
|
|
||||||
elif env['CC'] == 'clang':
|
elif env['CC'] == 'clang':
|
||||||
defaults.cxxFlags = ''
|
defaults.cxxFlags = ''
|
||||||
defaults.ccFlags = '-Wall -fcolor-diagnostics -Wno-deprecated-declarations'
|
defaults.ccFlags = '-fcolor-diagnostics -Wno-deprecated-declarations'
|
||||||
defaults.debugCcFlags = '-g'
|
defaults.debugCcFlags = '-g'
|
||||||
defaults.noOptimizeCcFlags = '-O0'
|
defaults.noOptimizeCcFlags = '-O0'
|
||||||
defaults.optimizeCcFlags = '-O3 -DNDEBUG'
|
defaults.optimizeCcFlags = '-O3 -DNDEBUG'
|
||||||
|
defaults.warningFlags = '-Wall'
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print "WARNING: Unrecognized C compiler '%s'" % env['CC']
|
print "WARNING: Unrecognized C compiler '%s'" % env['CC']
|
||||||
|
|
@ -467,6 +471,11 @@ opts.AddVariables(
|
||||||
('no_debug_linker_flags',
|
('no_debug_linker_flags',
|
||||||
'Additional options passed to the linker when debug=yes',
|
'Additional options passed to the linker when debug=yes',
|
||||||
defaults.noDebugLinkFlags),
|
defaults.noDebugLinkFlags),
|
||||||
|
('warning_flags',
|
||||||
|
"""Additional compiler flags passed to the C/C++ compiler to enable
|
||||||
|
extra warnings. Used only when compiling source code that part of
|
||||||
|
Cantera (e.g. excluding code in the 'ext' directory).""",
|
||||||
|
defaults.warningFlags),
|
||||||
('extra_inc_dirs',
|
('extra_inc_dirs',
|
||||||
'Additional directories to search for header files (colon-separated list)',
|
'Additional directories to search for header files (colon-separated list)',
|
||||||
''),
|
''),
|
||||||
|
|
@ -709,6 +718,8 @@ env['CXXFLAGS'] = listify(env['cxx_flags'])
|
||||||
env['CCFLAGS'] = listify(env['cc_flags']) + listify(env['thread_flags'])
|
env['CCFLAGS'] = listify(env['cc_flags']) + listify(env['thread_flags'])
|
||||||
env['LINKFLAGS'] += listify(env['thread_flags'])
|
env['LINKFLAGS'] += listify(env['thread_flags'])
|
||||||
|
|
||||||
|
env['warning_flags'] = listify(env['warning_flags'])
|
||||||
|
|
||||||
if env['optimize']:
|
if env['optimize']:
|
||||||
env['CCFLAGS'] += listify(env['optimize_flags'])
|
env['CCFLAGS'] += listify(env['optimize_flags'])
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ for subdir, extensions, setup in libs:
|
||||||
localenv = env.Clone()
|
localenv = env.Clone()
|
||||||
localenv.Prepend(CPPPATH=Dir('#include'))
|
localenv.Prepend(CPPPATH=Dir('#include'))
|
||||||
localenv.Prepend(CPPPATH=Dir('#src')) # todo: remove when not needed
|
localenv.Prepend(CPPPATH=Dir('#src')) # todo: remove when not needed
|
||||||
|
localenv.Append(CCFLAGS=env['warning_flags'])
|
||||||
source = setup(localenv, subdir, extensions)
|
source = setup(localenv, subdir, extensions)
|
||||||
objects = localenv.SharedObject(source)
|
objects = localenv.SharedObject(source)
|
||||||
localenv.Depends(objects, localenv['config_h_target'])
|
localenv.Depends(objects, localenv['config_h_target'])
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,8 @@ localenv = env.Clone()
|
||||||
|
|
||||||
localenv.Prepend(CPPPATH=['#ext/gtest/include', '#include'],
|
localenv.Prepend(CPPPATH=['#ext/gtest/include', '#include'],
|
||||||
LIBPATH='#build/lib')
|
LIBPATH='#build/lib')
|
||||||
localenv.Append(LIBS=['gtest'] + localenv['cantera_libs'])
|
localenv.Append(LIBS=['gtest'] + localenv['cantera_libs'],
|
||||||
|
CCFLAGS=env['warning_flags'])
|
||||||
|
|
||||||
localenv['ENV']['PYTHONPATH'] = Dir('#interfaces/python').abspath
|
localenv['ENV']['PYTHONPATH'] = Dir('#interfaces/python').abspath
|
||||||
localenv['ENV']['CANTERA_DATA'] = Dir('#build/data').abspath
|
localenv['ENV']['CANTERA_DATA'] = Dir('#build/data').abspath
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ from buildutils import *
|
||||||
Import('env','build','install')
|
Import('env','build','install')
|
||||||
localenv = env.Clone()
|
localenv = env.Clone()
|
||||||
localenv.Prepend(CPPPATH=['#include', '#src', 'shared'])
|
localenv.Prepend(CPPPATH=['#include', '#src', 'shared'])
|
||||||
|
localenv.Append(CCFLAGS=env['warning_flags'])
|
||||||
|
|
||||||
os.environ['PYTHONPATH'] = pjoin(os.getcwd(), '..', 'interfaces', 'python')
|
os.environ['PYTHONPATH'] = pjoin(os.getcwd(), '..', 'interfaces', 'python')
|
||||||
os.environ['CANTERA_DATA'] = pjoin(os.getcwd(), '..', 'build', 'data')
|
os.environ['CANTERA_DATA'] = pjoin(os.getcwd(), '..', 'build', 'data')
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue