# This is a file containing commands for scan-build.
BuildScript = "run_static_analyzer.cmd"
+# A comment in a build script which disables wrapping.
+NoPrefixCmd = "#NOPREFIX"
+
# The log file name.
LogFolderName = "Logs"
BuildLogName = "run_static_analyzer.log"
# Always use ccc-analyze to ensure that we can locate the failures
# directory.
SBOptions += "--override-compiler "
+ ExtraEnv = {}
try:
SBCommandFile = open(BuildScriptPath, "r")
SBPrefix = "scan-build " + SBOptions + " "
Command = Command.strip()
if len(Command) == 0:
continue
+
+ # Custom analyzer invocation specified by project.
+ # Communicate required information using environment variables
+ # instead.
+ if Command == NoPrefixCmd:
+ SBPrefix = ""
+ ExtraEnv['OUTPUT'] = SBOutputDir
+ continue
+
# If using 'make', auto imply a -jX argument
# to speed up analysis. xcodebuild will
# automatically use the maximum number of cores.
check_call(SBCommand, cwd=SBCwd,
stderr=PBuildLogFile,
stdout=PBuildLogFile,
+ env=dict(os.environ, **ExtraEnv),
shell=True)
except CalledProcessError:
Local.stderr.write("Error: scan-build failed. Its output was: \n")