SCons: restore Werror option in src/SConscript
authorSteve Reinhardt <steve.reinhardt@amd.com>
Fri, 13 Apr 2012 15:13:04 +0000 (08:13 -0700)
committerSteve Reinhardt <steve.reinhardt@amd.com>
Fri, 13 Apr 2012 15:13:04 +0000 (08:13 -0700)
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.

src/SConscript

index 9f11a45f3de5bf2ebb6480813740f5798d8f0339..8c50f9fbb08666e9e6584558f93e35a9e8fc648d 100755 (executable)
@@ -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