This revision was automatically updated to reflect the committed changes. Closed by commit rL247617: [analyzer] Update SATestBuild.py to set -isysroot for preprocessed files (authored by dcoughlin).
Changed prior to commit: http://reviews.llvm.org/D12769?vs=34471&id=34733#toc Repository: rL LLVM http://reviews.llvm.org/D12769 Files: cfe/trunk/utils/analyzer/SATestBuild.py Index: cfe/trunk/utils/analyzer/SATestBuild.py =================================================================== --- cfe/trunk/utils/analyzer/SATestBuild.py +++ cfe/trunk/utils/analyzer/SATestBuild.py @@ -52,7 +52,7 @@ import time import plistlib import argparse -from subprocess import check_call, CalledProcessError +from subprocess import check_call, check_output, CalledProcessError #------------------------------------------------------------------------------ # Helper functions. @@ -255,14 +255,31 @@ return True return False +# Get the path to the SDK for the given SDK name. Returns None if +# the path cannot be determined. +def getSDKPath(SDKName): + if which("xcrun") is None: + return None + + Cmd = "xcrun --sdk " + SDKName + " --show-sdk-path" + return check_output(Cmd, shell=True).rstrip() + # Run analysis on a set of preprocessed files. def runAnalyzePreprocessed(Dir, SBOutputDir, Mode): if os.path.exists(os.path.join(Dir, BuildScript)): print "Error: The preprocessed files project should not contain %s" % \ BuildScript raise Exception() - CmdPrefix = Clang + " -cc1 -analyze -analyzer-output=plist -w " + CmdPrefix = Clang + " -cc1 " + + # For now, we assume the preprocessed files should be analyzed + # with the OS X SDK. + SDKPath = getSDKPath("macosx") + if SDKPath is not None: + CmdPrefix += "-isysroot " + SDKPath + " " + + CmdPrefix += "-analyze -analyzer-output=plist -w " CmdPrefix += "-analyzer-checker=" + Checkers +" -fcxx-exceptions -fblocks " if (Mode == 2) :
Index: cfe/trunk/utils/analyzer/SATestBuild.py =================================================================== --- cfe/trunk/utils/analyzer/SATestBuild.py +++ cfe/trunk/utils/analyzer/SATestBuild.py @@ -52,7 +52,7 @@ import time import plistlib import argparse -from subprocess import check_call, CalledProcessError +from subprocess import check_call, check_output, CalledProcessError #------------------------------------------------------------------------------ # Helper functions. @@ -255,14 +255,31 @@ return True return False +# Get the path to the SDK for the given SDK name. Returns None if +# the path cannot be determined. +def getSDKPath(SDKName): + if which("xcrun") is None: + return None + + Cmd = "xcrun --sdk " + SDKName + " --show-sdk-path" + return check_output(Cmd, shell=True).rstrip() + # Run analysis on a set of preprocessed files. def runAnalyzePreprocessed(Dir, SBOutputDir, Mode): if os.path.exists(os.path.join(Dir, BuildScript)): print "Error: The preprocessed files project should not contain %s" % \ BuildScript raise Exception() - CmdPrefix = Clang + " -cc1 -analyze -analyzer-output=plist -w " + CmdPrefix = Clang + " -cc1 " + + # For now, we assume the preprocessed files should be analyzed + # with the OS X SDK. + SDKPath = getSDKPath("macosx") + if SDKPath is not None: + CmdPrefix += "-isysroot " + SDKPath + " " + + CmdPrefix += "-analyze -analyzer-output=plist -w " CmdPrefix += "-analyzer-checker=" + Checkers +" -fcxx-exceptions -fblocks " if (Mode == 2) :
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits