diff options
Diffstat (limited to 'clang/tools/ccc/ccclib/ToolChain.py')
| -rw-r--r-- | clang/tools/ccc/ccclib/ToolChain.py | 18 |
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__] |

