summaryrefslogtreecommitdiffstats
path: root/clang/tools/ccc/ccclib/ToolChain.py
diff options
context:
space:
mode:
Diffstat (limited to 'clang/tools/ccc/ccclib/ToolChain.py')
-rw-r--r--clang/tools/ccc/ccclib/ToolChain.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/clang/tools/ccc/ccclib/ToolChain.py b/clang/tools/ccc/ccclib/ToolChain.py
index db8dd0e414a..2447b670525 100644
--- a/clang/tools/ccc/ccclib/ToolChain.py
+++ b/clang/tools/ccc/ccclib/ToolChain.py
@@ -17,16 +17,28 @@ class ToolChain(object):
class Darwin_X86_ToolChain(ToolChain):
def __init__(self, driver, darwinVersion, gccVersion):
super(Darwin_X86_ToolChain, self).__init__(driver)
+ assert isinstance(darwinVersion, tuple) and len(darwinVersion) == 3
+ assert isinstance(gccVersion, tuple) and len(gccVersion) == 3
+ self.darwinVersion = darwinVersion
+ self.gccVersion = gccVersion
+
self.toolMap = {
Phases.PreprocessPhase : Tools.GCC_PreprocessTool(),
Phases.CompilePhase : Tools.GCC_CompileTool(),
Phases.PrecompilePhase : Tools.GCC_PrecompileTool(),
- Phases.AssemblePhase : Tools.DarwinAssembleTool(),
- Phases.LinkPhase : Tools.Darwin_X86_LinkTool(darwinVersion,
- gccVersion),
+ Phases.AssemblePhase : Tools.Darwin_AssembleTool(self),
+ Phases.LinkPhase : Tools.Darwin_X86_LinkTool(self),
Phases.LipoPhase : Tools.LipoTool(),
}
+ 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 selectTool(self, action):
assert isinstance(action, Phases.JobAction)
return self.toolMap[action.phase.__class__]
OpenPOWER on IntegriCloud