summaryrefslogtreecommitdiff
path: root/src/SConscript
diff options
context:
space:
mode:
authorSteve Reinhardt <steve.reinhardt@amd.com>2012-04-13 08:13:04 -0700
committerSteve Reinhardt <steve.reinhardt@amd.com>2012-04-13 08:13:04 -0700
commit29482e90bad9d1d93b20d4f55fc4583756d68b3b (patch)
treee9a062eda5a8d45ee1116e19af24d43efa1b0e9b /src/SConscript
parent4bd61abb5176a85e2bae173534bbe520725a57de (diff)
downloadgem5-29482e90bad9d1d93b20d4f55fc4583756d68b3b.tar.xz
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.
Diffstat (limited to 'src/SConscript')
-rwxr-xr-xsrc/SConscript12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/SConscript b/src/SConscript
index 9f11a45f3..8c50f9fbb 100755
--- a/src/SConscript
+++ b/src/SConscript
@@ -151,10 +151,11 @@ class SourceFile(object):
class Source(SourceFile):
'''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'''
super(Source, self).__init__(source, **guards)
+ self.Werror = Werror
self.swig = swig
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.Label = label
new_env.Append(**kwargs)
- # Always consider warnings errors
- new_env.Append(CCFLAGS='-Werror')
swig_env = new_env.Clone()
+ swig_env.Append(CCFLAGS='-Werror')
if env['GCC']:
swig_env.Append(CCFLAGS='-Wno-uninitialized')
swig_env.Append(CCFLAGS='-Wno-sign-compare')
@@ -857,6 +857,10 @@ def makeEnv(label, objsfx, strip = False, **kwargs):
if env['CLANG']:
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):
'''This function adds the specified source to the correct
build environment, and returns the corresponding SCons Object
@@ -864,6 +868,8 @@ def makeEnv(label, objsfx, strip = False, **kwargs):
if source.swig:
env = swig_env
+ elif source.Werror:
+ env = werror_env
else:
env = new_env