Mesa (master): scons: Use -Werror MSVC compatibility flags per-directory.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Wed Mar 4 15:15:49 UTC 2015


Module: Mesa
Branch: master
Commit: 00faf9f00059370bc20ebeaf00884c2d8ef15a74
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=00faf9f00059370bc20ebeaf00884c2d8ef15a74

Author: Jose Fonseca <jfonseca at vmware.com>
Date:   Wed Mar  4 14:23:52 2015 +0000

scons: Use -Werror MSVC compatibility flags per-directory.

Matching what we already do with autotools builds.

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 scons/gallium.py                        |   27 ++++++++++++++++++++-------
 src/egl/main/SConscript                 |    2 ++
 src/gallium/auxiliary/SConscript        |    4 ++++
 src/gallium/drivers/llvmpipe/SConscript |    2 ++
 src/glsl/SConscript                     |    2 ++
 src/loader/SConscript                   |    2 ++
 src/mapi/glapi/SConscript               |    2 ++
 src/mesa/SConscript                     |    2 ++
 src/util/SConscript                     |    2 ++
 9 files changed, 38 insertions(+), 7 deletions(-)

diff --git a/scons/gallium.py b/scons/gallium.py
index c34468f..f839758 100755
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -87,6 +87,25 @@ def createInstallMethods(env):
     env.AddMethod(install_shared_library, 'InstallSharedLibrary')
 
 
+def msvc2013_compat(env):
+    if env['gcc']:
+        env.Append(CCFLAGS = [
+            '-Werror=vla',
+            '-Werror=pointer-arith',
+        ])
+
+def msvc2008_compat(env):
+    msvc2013_compat(env)
+    if env['gcc']:
+        env.Append(CFLAGS = [
+            '-Werror=declaration-after-statement',
+        ])
+
+def createMSVCCompatMethods(env):
+    env.AddMethod(msvc2013_compat, 'MSVC2013Compat')
+    env.AddMethod(msvc2008_compat, 'MSVC2008Compat')
+
+
 def num_jobs():
     try:
         return int(os.environ['NUMBER_OF_PROCESSORS'])
@@ -443,13 +462,6 @@ def generate(env):
             '-Wmissing-prototypes',
             '-std=gnu99',
         ]
-        if distutils.version.LooseVersion(ccversion) >= distutils.version.LooseVersion('4.2'):
-            ccflags += [
-                '-Wpointer-arith',
-            ]
-            cflags += [
-                '-Wdeclaration-after-statement',
-            ]
     if icc:
         cflags += [
             '-std=gnu99',
@@ -617,6 +629,7 @@ def generate(env):
     # Custom builders and methods
     env.Tool('custom')
     createInstallMethods(env)
+    createMSVCCompatMethods(env)
 
     env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage', 'xfixes', 'glproto >= 1.4.13'])
     env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx >= 1.8.1', 'xcb-dri2 >= 1.8'])
diff --git a/src/egl/main/SConscript b/src/egl/main/SConscript
index 399c020..b4e9b67 100644
--- a/src/egl/main/SConscript
+++ b/src/egl/main/SConscript
@@ -6,6 +6,8 @@ Import('*')
 
 env = env.Clone()
 
+env.MSVC2013Compat()
+
 env.Append(CPPDEFINES = [
     '_EGL_DRIVER_SEARCH_DIR=\\"\\"',
 ])
diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript
index 6cb6b8c..d5fa880 100644
--- a/src/gallium/auxiliary/SConscript
+++ b/src/gallium/auxiliary/SConscript
@@ -8,6 +8,10 @@ env.Append(CPPPATH = [
     'util',
 ])
 
+env = env.Clone()
+
+env.MSVC2008Compat()
+
 env.CodeGenerate(
     target = 'indices/u_indices_gen.c', 
     script = 'indices/u_indices_gen.py', 
diff --git a/src/gallium/drivers/llvmpipe/SConscript b/src/gallium/drivers/llvmpipe/SConscript
index 1bea611..3a51efc 100644
--- a/src/gallium/drivers/llvmpipe/SConscript
+++ b/src/gallium/drivers/llvmpipe/SConscript
@@ -9,6 +9,8 @@ if not env['llvm']:
 
 env = env.Clone()
 
+env.MSVC2008Compat()
+
 llvmpipe = env.ConvenienceLibrary(
 	target = 'llvmpipe',
 	source = env.ParseSourceList('Makefile.sources', 'C_SOURCES')
diff --git a/src/glsl/SConscript b/src/glsl/SConscript
index 21c8266..26de455 100644
--- a/src/glsl/SConscript
+++ b/src/glsl/SConscript
@@ -6,6 +6,8 @@ from sys import executable as python_cmd
 
 env = env.Clone()
 
+env.MSVC2013Compat()
+
 env.Prepend(CPPPATH = [
     '#include',
     '#src',
diff --git a/src/loader/SConscript b/src/loader/SConscript
index 359fc18..16d1053 100644
--- a/src/loader/SConscript
+++ b/src/loader/SConscript
@@ -2,6 +2,8 @@ Import('*')
 
 env = env.Clone()
 
+env.MSVC2013Compat()
+
 env.Prepend(CPPPATH = [
     '#include'
 ])
diff --git a/src/mapi/glapi/SConscript b/src/mapi/glapi/SConscript
index 97ebfe6..84a5068 100644
--- a/src/mapi/glapi/SConscript
+++ b/src/mapi/glapi/SConscript
@@ -8,6 +8,8 @@ Import('*')
 
 env = env.Clone()
 
+env.MSVC2013Compat()
+
 env.Append(CPPDEFINES = [
     'MAPI_MODE_UTIL',
 ])
diff --git a/src/mesa/SConscript b/src/mesa/SConscript
index 62e81ce..d6ff083 100644
--- a/src/mesa/SConscript
+++ b/src/mesa/SConscript
@@ -10,6 +10,8 @@ from sys import executable as python_cmd
 
 env = env.Clone()
 
+env.MSVC2013Compat()
+
 env.Append(CPPPATH = [
     '#/src',
     '#/src/mapi',
diff --git a/src/util/SConscript b/src/util/SConscript
index 84bd7a1..9e4d481 100644
--- a/src/util/SConscript
+++ b/src/util/SConscript
@@ -6,6 +6,8 @@ from sys import executable as python_cmd
 
 env = env.Clone()
 
+env.MSVC2008Compat()
+
 env.Prepend(CPPPATH = [
     '#include',
     '#src',




More information about the mesa-commit mailing list