[Mesa-dev] [PATCH 3/3] scons: Add an analyze option.
jfonseca at vmware.com
jfonseca at vmware.com
Mon Apr 14 06:32:13 PDT 2014
From: José Fonseca <jfonseca at vmware.com>
For Clang static code analyzer, the scan-build script will produce more
comprehensive output. Nevertheless you can invoke it as
CC=clang CXX=clang++ scons analyze=1
For MSVC this is the best way to use its static code analysis. Simply
invoke as
scons analyze=1
---
common.py | 1 +
scons/gallium.py | 12 ++++++++++++
2 files changed, 13 insertions(+)
diff --git a/common.py b/common.py
index 22c1725..d6e6215 100644
--- a/common.py
+++ b/common.py
@@ -91,6 +91,7 @@ def AddOptions(opts):
opts.Add(EnumOption('platform', 'target platform', host_platform,
allowed_values=('cygwin', 'darwin', 'freebsd', 'haiku', 'linux', 'sunos', 'windows')))
opts.Add(BoolOption('embedded', 'embedded build', 'no'))
+ opts.Add(BoolOption('analyze', 'enable static code analysis where available', 'no'))
opts.Add('toolchain', 'compiler toolchain', default_toolchain)
opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support', 'no'))
opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
diff --git a/scons/gallium.py b/scons/gallium.py
index 42e8f7c..e873c65 100755
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -467,6 +467,18 @@ def generate(env):
env.Append(CCFLAGS = ['/MT'])
env.Append(SHCCFLAGS = ['/LD'])
+ # Static code analysis
+ if env['analyze']:
+ if env['msvc']:
+ # http://msdn.microsoft.com/en-us/library/ms173498.aspx
+ env.Append(CCFLAGS = [
+ '/analyze',
+ #'/analyze:log', '${TARGET.base}.xml',
+ ])
+ if env['clang']:
+ # scan-build will produce more comprehensive output
+ env.Append(CCFLAGS = ['--analyze'])
+
# Assembler options
if gcc_compat:
if env['machine'] == 'x86':
--
1.8.3.2
More information about the mesa-dev
mailing list