SCons: restore Werror option in src/SConscript

Partial backout of cset 8b223e308b08.

Although it's great that there's currently no need
for Werror=false in the current tree, some of us
have uncommitted code that still needs this option.
This commit is contained in:
Steve Reinhardt 2012-04-13 08:13:04 -07:00
parent 4bd61abb51
commit 29482e90ba

View file

@ -151,10 +151,11 @@ class SourceFile(object):
class Source(SourceFile): class Source(SourceFile):
'''Add a c/c++ source file to the build''' '''Add a c/c++ source file to the build'''
def __init__(self, source, swig = False, **guards): def __init__(self, source, Werror=True, swig=False, **guards):
'''specify the source file, and any guards''' '''specify the source file, and any guards'''
super(Source, self).__init__(source, **guards) super(Source, self).__init__(source, **guards)
self.Werror = Werror
self.swig = swig self.swig = swig
class PySource(SourceFile): class PySource(SourceFile):
@ -843,10 +844,9 @@ def makeEnv(label, objsfx, strip = False, **kwargs):
new_env = env.Clone(OBJSUFFIX=objsfx, SHOBJSUFFIX=objsfx + 's') new_env = env.Clone(OBJSUFFIX=objsfx, SHOBJSUFFIX=objsfx + 's')
new_env.Label = label new_env.Label = label
new_env.Append(**kwargs) new_env.Append(**kwargs)
# Always consider warnings errors
new_env.Append(CCFLAGS='-Werror')
swig_env = new_env.Clone() swig_env = new_env.Clone()
swig_env.Append(CCFLAGS='-Werror')
if env['GCC']: if env['GCC']:
swig_env.Append(CCFLAGS='-Wno-uninitialized') swig_env.Append(CCFLAGS='-Wno-uninitialized')
swig_env.Append(CCFLAGS='-Wno-sign-compare') swig_env.Append(CCFLAGS='-Wno-sign-compare')
@ -857,6 +857,10 @@ def makeEnv(label, objsfx, strip = False, **kwargs):
if env['CLANG']: if env['CLANG']:
swig_env.Append(CCFLAGS=['-Wno-unused-label']) swig_env.Append(CCFLAGS=['-Wno-unused-label'])
werror_env = new_env.Clone()
werror_env.Append(CCFLAGS='-Werror')
def make_obj(source, static, extra_deps = None): def make_obj(source, static, extra_deps = None):
'''This function adds the specified source to the correct '''This function adds the specified source to the correct
build environment, and returns the corresponding SCons Object build environment, and returns the corresponding SCons Object
@ -864,6 +868,8 @@ def makeEnv(label, objsfx, strip = False, **kwargs):
if source.swig: if source.swig:
env = swig_env env = swig_env
elif source.Werror:
env = werror_env
else: else:
env = new_env env = new_env