summaryrefslogtreecommitdiffstats
path: root/clang/tools/ccc/ccclib/ToolChain.py
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-01-21 02:03:52 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-01-21 02:03:52 +0000
commita1847545704399a0814d16cd90ef0d24e2647b8d (patch)
treed0a3ecba6f17f54928b1831601b76c7c3c1aa418 /clang/tools/ccc/ccclib/ToolChain.py
parent43c2bab6d33f649146aa986d0bdf29d201ee5b65 (diff)
downloadbcm5719-llvm-a1847545704399a0814d16cd90ef0d24e2647b8d.tar.gz
bcm5719-llvm-a1847545704399a0814d16cd90ef0d24e2647b8d.zip
ccc: Implement file & path searching.
- Toolchain is responsible for providing list of prefixes to search. - Implement -print-file-name=xxx and -print-prog-name=xxx driver options. llvm-svn: 62659
Diffstat (limited to 'clang/tools/ccc/ccclib/ToolChain.py')
-rw-r--r--clang/tools/ccc/ccclib/ToolChain.py33
1 files changed, 28 insertions, 5 deletions
diff --git a/clang/tools/ccc/ccclib/ToolChain.py b/clang/tools/ccc/ccclib/ToolChain.py
index ee244d7ec0b..20582a2b267 100644
--- a/clang/tools/ccc/ccclib/ToolChain.py
+++ b/clang/tools/ccc/ccclib/ToolChain.py
@@ -1,3 +1,5 @@
+import os
+
import Arguments
import Phases
import Tools
@@ -8,8 +10,18 @@ import Types
class ToolChain(object):
"""ToolChain - Provide mappings of Actions to Tools."""
- def __init__(self, driver):
+ def __init__(self, driver,
+ filePathPrefixes=[],
+ programPathPrefixes=[]):
self.driver = driver
+ self.filePathPrefixes = list(filePathPrefixes)
+ self.programPathPrefixes = list(programPathPrefixes)
+
+ def getFilePath(self, name):
+ return self.driver.getFilePath(name, self)
+
+ def getProgramPath(self, name):
+ return self.driver.getProgramPath(name, self)
def selectTool(self, action):
"""selectTool - Return a Tool instance to use for handling
@@ -63,14 +75,25 @@ class Darwin_X86_ToolChain(ToolChain):
Phases.LipoPhase : Tools.LipoTool(),
}
+ self.filePathPrefixes.append(os.path.join(self.driver.driverDir,
+ '../lib/gcc',
+ self.getToolChainDir()))
+ self.filePathPrefixes.append(os.path.join(self.driver.driverDir,
+ '/usr/lib/gcc',
+ self.getToolChainDir()))
+
+ self.programPathPrefixes.append(os.path.join(self.driver.driverDir,
+ '../libexec/gcc',
+ self.getToolChainDir()))
+ self.programPathPrefixes.append(os.path.join(self.driver.driverDir,
+ '/usr/libexec/gcc',
+ self.getToolChainDir()))
+ self.programPathPrefixes.append(self.driver.driverDir)
+
def getToolChainDir(self):
return 'i686-apple-darwin%d/%s' % (self.darwinVersion[0],
'.'.join(map(str,self.gccVersion)))
- def getProgramPath(self, name):
- # FIXME: Implement proper search.
- return '/usr/libexec/gcc/%s/%s' % (self.getToolChainDir(), name)
-
def getMacosxVersionMin(self):
major,minor,minorminor = self.darwinVersion
return '%d.%d.%d' % (10, major-4, minor)
OpenPOWER on IntegriCloud