forked from OSchip/llvm-project
ccc: Support -v; invent a version number for ccc for now, will be
shared with clang eventually. llvm-svn: 63220
This commit is contained in:
parent
b04867265c
commit
36ccb30a35
|
@ -883,9 +883,9 @@ class OptionParser:
|
||||||
|
|
||||||
# Version control.
|
# Version control.
|
||||||
# FIXME: Figure out what to do about these.
|
# FIXME: Figure out what to do about these.
|
||||||
self.BOption = self.addOption(JoinedOrSeparateOption('-B'))
|
self.BOption = self.addOption(JoinedOrSeparateOption('-B', unsupported=True))
|
||||||
self.addOption(JoinedOrSeparateOption('-V'))
|
self.addOption(JoinedOrSeparateOption('-V', unsupported=True))
|
||||||
self.addOption(JoinedOrSeparateOption('-b'))
|
self.addOption(JoinedOrSeparateOption('-b', unsupported=True))
|
||||||
|
|
||||||
# Clang static analyzer options (also see -WA,).
|
# Clang static analyzer options (also see -WA,).
|
||||||
self.analyzeOption = self.addOption(FlagOption('--analyze'))
|
self.analyzeOption = self.addOption(FlagOption('--analyze'))
|
||||||
|
|
|
@ -32,6 +32,9 @@ class Driver(object):
|
||||||
self.cccEcho = False
|
self.cccEcho = False
|
||||||
self.cccFallback = False
|
self.cccFallback = False
|
||||||
|
|
||||||
|
# Certain options suppress the 'no input files' warning.
|
||||||
|
self.suppressMissingInputWarning = False
|
||||||
|
|
||||||
# Host queries which can be forcibly over-riden by the user for
|
# Host queries which can be forcibly over-riden by the user for
|
||||||
# testing purposes.
|
# testing purposes.
|
||||||
#
|
#
|
||||||
|
@ -208,10 +211,11 @@ class Driver(object):
|
||||||
raise ValueError,'Encountered unknown job.'
|
raise ValueError,'Encountered unknown job.'
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
vArg = args.getLastArg(self.parser.vOption)
|
||||||
for j in jobs.iterjobs():
|
for j in jobs.iterjobs():
|
||||||
if isinstance(j, Jobs.Command):
|
if isinstance(j, Jobs.Command):
|
||||||
if self.cccEcho:
|
if vArg or self.cccEcho:
|
||||||
print >>sys.stderr, ' '.join(map(repr,j.getArgv()))
|
print >>sys.stderr, ' '.join(map(str,j.getArgv()))
|
||||||
sys.stderr.flush()
|
sys.stderr.flush()
|
||||||
res = os.spawnvp(os.P_WAIT, j.executable, j.getArgv())
|
res = os.spawnvp(os.P_WAIT, j.executable, j.getArgv())
|
||||||
if res:
|
if res:
|
||||||
|
@ -220,8 +224,8 @@ class Driver(object):
|
||||||
import subprocess
|
import subprocess
|
||||||
procs = []
|
procs = []
|
||||||
for sj in j.commands:
|
for sj in j.commands:
|
||||||
if self.cccEcho:
|
if vArg or self.cccEcho:
|
||||||
print >> sys.stderr, ' '.join(map(repr,sj.getArgv()))
|
print >> sys.stderr, ' '.join(map(str,sj.getArgv()))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
|
|
||||||
if not procs:
|
if not procs:
|
||||||
|
@ -290,6 +294,10 @@ class Driver(object):
|
||||||
steps = {}
|
steps = {}
|
||||||
for phase in phases:
|
for phase in phases:
|
||||||
printPhase(phase, sys.stdout, steps)
|
printPhase(phase, sys.stdout, steps)
|
||||||
|
|
||||||
|
def printVersion(self):
|
||||||
|
# FIXME: Print default target triple.
|
||||||
|
print >>sys.stderr,'ccc version 1.0'
|
||||||
|
|
||||||
def handleImmediateOptions(self, args):
|
def handleImmediateOptions(self, args):
|
||||||
# FIXME: Some driver Arguments are consumed right off the bat,
|
# FIXME: Some driver Arguments are consumed right off the bat,
|
||||||
|
@ -307,6 +315,11 @@ class Driver(object):
|
||||||
# FIXME: Do we want to report "argument unused" type errors in the
|
# FIXME: Do we want to report "argument unused" type errors in the
|
||||||
# presence of things like -dumpmachine and -print-search-dirs?
|
# presence of things like -dumpmachine and -print-search-dirs?
|
||||||
# Probably not.
|
# Probably not.
|
||||||
|
if (args.getLastArg(self.parser.vOption) or
|
||||||
|
args.getLastArg(self.parser.hashHashHashOption)):
|
||||||
|
self.printVersion()
|
||||||
|
self.suppressMissingInputWarning = True
|
||||||
|
|
||||||
arg = (args.getLastArg(self.parser.dumpmachineOption) or
|
arg = (args.getLastArg(self.parser.dumpmachineOption) or
|
||||||
args.getLastArg(self.parser.dumpversionOption) or
|
args.getLastArg(self.parser.dumpversionOption) or
|
||||||
args.getLastArg(self.parser.printSearchDirsOption))
|
args.getLastArg(self.parser.printSearchDirsOption))
|
||||||
|
@ -432,8 +445,7 @@ class Driver(object):
|
||||||
if arg:
|
if arg:
|
||||||
raise Arguments.InvalidArgumentsError("%s: unsupported use of internal gcc option" % ' '.join(args.render(arg)))
|
raise Arguments.InvalidArgumentsError("%s: unsupported use of internal gcc option" % ' '.join(args.render(arg)))
|
||||||
|
|
||||||
if (not inputs and
|
if not inputs and not self.suppressMissingInputWarning:
|
||||||
not args.getLastArg(self.parser.hashHashHashOption)):
|
|
||||||
raise Arguments.InvalidArgumentsError("no input files")
|
raise Arguments.InvalidArgumentsError("no input files")
|
||||||
|
|
||||||
actions = []
|
actions = []
|
||||||
|
|
|
@ -106,7 +106,8 @@ class CompileInfo:
|
||||||
ln.startswith('Target: ') or
|
ln.startswith('Target: ') or
|
||||||
ln.startswith('Configured with: ') or
|
ln.startswith('Configured with: ') or
|
||||||
ln.startswith('Thread model: ') or
|
ln.startswith('Thread model: ') or
|
||||||
ln.startswith('gcc version')):
|
ln.startswith('gcc version') or
|
||||||
|
ln.startswith('ccc version')):
|
||||||
pass
|
pass
|
||||||
elif ln.strip().startswith('"'):
|
elif ln.strip().startswith('"'):
|
||||||
self.commands.append(list(splitArgs(ln)))
|
self.commands.append(list(splitArgs(ln)))
|
||||||
|
|
Loading…
Reference in New Issue