aboutsummaryrefslogtreecommitdiff
path: root/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
commit768be1c162b8b22b625dac81b36a0a00ba4faf04 (patch)
tree1cd862701a58975ee2824c8a0d97384bd7bff141 /tools/ccc/ccclib/ToolChain.py
parentbbd1fa24fc939819079ca2c104b05dcfefe166b0 (diff)
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62659 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/ccc/ccclib/ToolChain.py')
-rw-r--r--tools/ccc/ccclib/ToolChain.py33
1 files changed, 28 insertions, 5 deletions
diff --git a/tools/ccc/ccclib/ToolChain.py b/tools/ccc/ccclib/ToolChain.py
index ee244d7ec0..20582a2b26 100644
--- a/tools/ccc/ccclib/ToolChain.py
+++ b/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)