From 00faf9f00059370bc20ebeaf00884c2d8ef15a74 Mon Sep 17 00:00:00 2001 From: Jose Fonseca Date: Wed, 4 Mar 2015 14:23:52 +0000 Subject: [PATCH] scons: Use -Werror MSVC compatibility flags per-directory. Matching what we already do with autotools builds. Reviewed-by: Brian Paul --- 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 c34468fb673..f8397586908 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 399c020c2d0..b4e9b67a2ef 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 6cb6b8c6565..d5fa880c7f2 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 1bea61151c6..3a51efcd506 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 21c8266a636..26de455f074 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 359fc1850fe..16d1053ff2d 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 97ebfe638ae..84a50684b97 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 62e81ced184..d6ff0835445 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 84bd7a1e1c4..9e4d481f838 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', -- 2.11.0