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__] | 

