forked from OSchip/llvm-project
[analyzer] [tests] Allow the tested project to specify it's own analyzer wrapper
llvm-svn: 336023
This commit is contained in:
parent
a262cf3146
commit
5c23d6ab3c
|
@ -136,6 +136,9 @@ CleanupScript = "cleanup_run_static_analyzer.sh"
|
|||
# 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"
|
||||
|
@ -285,6 +288,7 @@ def runScanBuild(Dir, SBOutputDir, PBuildLogFile):
|
|||
# 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 + " "
|
||||
|
@ -292,6 +296,15 @@ def runScanBuild(Dir, SBOutputDir, PBuildLogFile):
|
|||
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.
|
||||
|
@ -305,6 +318,7 @@ def runScanBuild(Dir, SBOutputDir, PBuildLogFile):
|
|||
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")
|
||||
|
|
Loading…
Reference in New Issue