aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-01-28 19:26:20 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-01-28 19:26:20 +0000
commit76715913cd6400feb23950a650cd1777ebe10967 (patch)
treecd872b2059a823808afe6344f63e672dd1ffddea
parent2d081c47cdaa2fa37848bddb0062e61c4607cb0b (diff)
ccc: Support -v; invent a version number for ccc for now, will be
shared with clang eventually. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63220 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--tools/ccc/ccclib/Arguments.py6
-rw-r--r--tools/ccc/ccclib/Driver.py24
-rwxr-xr-xutils/CmpDriver3
3 files changed, 23 insertions, 10 deletions
diff --git a/tools/ccc/ccclib/Arguments.py b/tools/ccc/ccclib/Arguments.py
index 7c5765c28d..051498f310 100644
--- a/tools/ccc/ccclib/Arguments.py
+++ b/tools/ccc/ccclib/Arguments.py
@@ -883,9 +883,9 @@ class OptionParser:
# Version control.
# FIXME: Figure out what to do about these.
- self.BOption = self.addOption(JoinedOrSeparateOption('-B'))
- self.addOption(JoinedOrSeparateOption('-V'))
- self.addOption(JoinedOrSeparateOption('-b'))
+ self.BOption = self.addOption(JoinedOrSeparateOption('-B', unsupported=True))
+ self.addOption(JoinedOrSeparateOption('-V', unsupported=True))
+ self.addOption(JoinedOrSeparateOption('-b', unsupported=True))
# Clang static analyzer options (also see -WA,).
self.analyzeOption = self.addOption(FlagOption('--analyze'))
diff --git a/tools/ccc/ccclib/Driver.py b/tools/ccc/ccclib/Driver.py
index 095745facc..6749dae132 100644
--- a/tools/ccc/ccclib/Driver.py
+++ b/tools/ccc/ccclib/Driver.py
@@ -32,6 +32,9 @@ class Driver(object):
self.cccEcho = 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
# testing purposes.
#
@@ -208,10 +211,11 @@ class Driver(object):
raise ValueError,'Encountered unknown job.'
sys.exit(0)
+ vArg = args.getLastArg(self.parser.vOption)
for j in jobs.iterjobs():
if isinstance(j, Jobs.Command):
- if self.cccEcho:
- print >>sys.stderr, ' '.join(map(repr,j.getArgv()))
+ if vArg or self.cccEcho:
+ print >>sys.stderr, ' '.join(map(str,j.getArgv()))
sys.stderr.flush()
res = os.spawnvp(os.P_WAIT, j.executable, j.getArgv())
if res:
@@ -220,8 +224,8 @@ class Driver(object):
import subprocess
procs = []
for sj in j.commands:
- if self.cccEcho:
- print >> sys.stderr, ' '.join(map(repr,sj.getArgv()))
+ if vArg or self.cccEcho:
+ print >> sys.stderr, ' '.join(map(str,sj.getArgv()))
sys.stdout.flush()
if not procs:
@@ -290,6 +294,10 @@ class Driver(object):
steps = {}
for phase in phases:
printPhase(phase, sys.stdout, steps)
+
+ def printVersion(self):
+ # FIXME: Print default target triple.
+ print >>sys.stderr,'ccc version 1.0'
def handleImmediateOptions(self, args):
# 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
# presence of things like -dumpmachine and -print-search-dirs?
# 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
args.getLastArg(self.parser.dumpversionOption) or
args.getLastArg(self.parser.printSearchDirsOption))
@@ -432,8 +445,7 @@ class Driver(object):
if arg:
raise Arguments.InvalidArgumentsError("%s: unsupported use of internal gcc option" % ' '.join(args.render(arg)))
- if (not inputs and
- not args.getLastArg(self.parser.hashHashHashOption)):
+ if not inputs and not self.suppressMissingInputWarning:
raise Arguments.InvalidArgumentsError("no input files")
actions = []
diff --git a/utils/CmpDriver b/utils/CmpDriver
index 54209843df..97c91a8209 100755
--- a/utils/CmpDriver
+++ b/utils/CmpDriver
@@ -106,7 +106,8 @@ class CompileInfo:
ln.startswith('Target: ') or
ln.startswith('Configured with: ') or
ln.startswith('Thread model: ') or
- ln.startswith('gcc version')):
+ ln.startswith('gcc version') or
+ ln.startswith('ccc version')):
pass
elif ln.strip().startswith('"'):
self.commands.append(list(splitArgs(ln)))