diff options
author | José Fonseca <[email protected]> | 2014-04-14 14:31:02 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2014-04-16 11:44:21 +0100 |
commit | d3c0e236f23e66cb2b4a75f5161282b2d15ff73f (patch) | |
tree | c964c28fc459b05069f844dee78dc9416e7b2b76 | |
parent | f81305c0cbb0e233435a26f5e2a8a38dd752c25e (diff) |
scons: Add an analyze option.
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
Reviewed-by: Brian Paul <[email protected]>
-rw-r--r-- | common.py | 1 | ||||
-rwxr-xr-x | scons/gallium.py | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/common.py b/common.py index 22c17257157..d6e621545b1 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 42e8f7c5476..e873c658ad0 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': |