]> granicus.if.org Git - clang/commitdiff
ccc: Add -ccc-echo special option, and support pulling CCC_CLANG,
authorDaniel Dunbar <daniel@zuster.org>
Wed, 14 Jan 2009 01:32:05 +0000 (01:32 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Wed, 14 Jan 2009 01:32:05 +0000 (01:32 +0000)
CCC_ECHO, and CCC_FALLBACK from environment as ccc (old) did.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62207 91177308-0d34-0410-b5e6-96231b3b80d8

tools/ccc/ccclib/Driver.py

index 5d73a985aad0b1b9c505e451d15b0d2279710d01..79979a09c8a3645a8b7d2fabe87b8314d8d49518 100644 (file)
@@ -33,6 +33,7 @@ class Driver(object):
         self.cccHostSystem = self.cccHostRelease = None
         self.cccCXX = False
         self.cccClang = False
+        self.cccEcho = False
         self.cccFallback = False
 
     # Host queries which can be forcibly over-riden by the user for
@@ -69,6 +70,16 @@ class Driver(object):
         
         return platform.release()
 
+    def getenvBool(self, name):
+        var = os.getenv(name)
+        if not var:
+            return False
+
+        try:
+            return bool(int(var))
+        except:
+            return False
+
     ###
 
     def run(self, argv):
@@ -85,6 +96,13 @@ class Driver(object):
 
         # FIXME: How to handle override of host? ccc specific options?
         # Abuse -b?
+        if self.getenvBool('CCC_CLANG'):
+            self.cccClang = True
+        if self.getenvBool('CCC_ECHO'):
+            self.cccEcho = True
+        if self.getenvBool('CCC_FALLBACK'):
+            self.cccFallback = True
+
         while argv and argv[0].startswith('-ccc-'):
             opt,argv = argv[0][5:],argv[1:]
 
@@ -96,6 +114,8 @@ class Driver(object):
                 self.cccCXX = True
             elif opt == 'clang':
                 self.cccClang = True
+            elif opt == 'echo':
+                self.cccEcho = True
             elif opt == 'fallback':
                 self.cccFallback = True
             elif opt == 'host-bits':
@@ -173,6 +193,9 @@ class Driver(object):
 
         for j in jobs.iterjobs():
             if isinstance(j, Jobs.Command):
+                if self.cccEcho:
+                    print ' '.join(map(repr,j.getArgv()))
+                    sys.stdout.flush()
                 res = os.spawnvp(os.P_WAIT, j.executable, j.getArgv())
                 if res:
                     sys.exit(res)