diff options
Diffstat (limited to 'lib/Driver/Tools.h')
| -rw-r--r-- | lib/Driver/Tools.h | 95 | 
1 files changed, 32 insertions, 63 deletions
| diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h index 2a181038996b..b5defa4569cf 100644 --- a/lib/Driver/Tools.h +++ b/lib/Driver/Tools.h @@ -41,14 +41,11 @@ namespace tools {    public:      Clang(const ToolChain &TC) : Tool("clang", "clang frontend", TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasGoodDiagnostics() const { return true; }      virtual bool hasIntegratedAssembler() const { return true; }      virtual bool hasIntegratedCPP() const { return true; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -61,14 +58,11 @@ namespace tools {      ClangAs(const ToolChain &TC) : Tool("clang::as",                                          "clang integrated assembler", TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasGoodDiagnostics() const { return true; }      virtual bool hasIntegratedAssembler() const { return false; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -83,7 +77,6 @@ namespace gcc {             const ToolChain &TC) : Tool(Name, ShortName, TC) {}      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -101,8 +94,6 @@ namespace gcc {      Preprocess(const ToolChain &TC) : Common("gcc::Preprocess",                                               "gcc preprocessor", TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasGoodDiagnostics() const { return true; }      virtual bool hasIntegratedCPP() const { return false; } @@ -115,8 +106,6 @@ namespace gcc {      Precompile(const ToolChain &TC) : Common("gcc::Precompile",                                               "gcc precompile", TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return false; }      virtual bool hasGoodDiagnostics() const { return true; }      virtual bool hasIntegratedCPP() const { return true; } @@ -129,8 +118,6 @@ namespace gcc {      Compile(const ToolChain &TC) : Common("gcc::Compile",                                            "gcc frontend", TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasGoodDiagnostics() const { return true; }      virtual bool hasIntegratedCPP() const { return true; } @@ -143,8 +130,6 @@ namespace gcc {      Assemble(const ToolChain &TC) : Common("gcc::Assemble",                                             "assembler (via gcc)", TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return false; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void RenderExtraToolArgs(const JobAction &JA, @@ -156,8 +141,6 @@ namespace gcc {      Link(const ToolChain &TC) : Common("gcc::Link",                                         "linker (via gcc)", TC) {} -    virtual bool acceptsPipedInput() const { return false; } -    virtual bool canPipeOutput() const { return false; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void RenderExtraToolArgs(const JobAction &JA, @@ -207,8 +190,6 @@ namespace darwin {      CC1(const char *Name, const char *ShortName,          const ToolChain &TC) : DarwinTool(Name, ShortName, TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasGoodDiagnostics() const { return true; }      virtual bool hasIntegratedCPP() const { return true; }    }; @@ -219,7 +200,6 @@ namespace darwin {                                            "gcc preprocessor", TC) {}      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -231,7 +211,6 @@ namespace darwin {      Compile(const ToolChain &TC) : CC1("darwin::Compile", "gcc frontend", TC) {}      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -243,12 +222,9 @@ namespace darwin {      Assemble(const ToolChain &TC) : DarwinTool("darwin::Assemble",                                                 "assembler", TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return false; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -261,12 +237,9 @@ namespace darwin {    public:      Link(const ToolChain &TC) : DarwinTool("darwin::Link", "linker", TC) {} -    virtual bool acceptsPipedInput() const { return false; } -    virtual bool canPipeOutput() const { return false; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -277,12 +250,9 @@ namespace darwin {    public:      Lipo(const ToolChain &TC) : DarwinTool("darwin::Lipo", "lipo", TC) {} -    virtual bool acceptsPipedInput() const { return false; } -    virtual bool canPipeOutput() const { return false; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -294,12 +264,9 @@ namespace darwin {      Dsymutil(const ToolChain &TC) : DarwinTool("darwin::Dsymutil",                                                 "dsymutil", TC) {} -    virtual bool acceptsPipedInput() const { return false; } -    virtual bool canPipeOutput() const { return false; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -314,12 +281,9 @@ namespace openbsd {      Assemble(const ToolChain &TC) : Tool("openbsd::Assemble", "assembler",                                           TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -329,12 +293,9 @@ namespace openbsd {    public:      Link(const ToolChain &TC) : Tool("openbsd::Link", "linker", TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -349,12 +310,9 @@ namespace freebsd {      Assemble(const ToolChain &TC) : Tool("freebsd::Assemble", "assembler",                                           TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -364,12 +322,9 @@ namespace freebsd {    public:      Link(const ToolChain &TC) : Tool("freebsd::Link", "linker", TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -377,6 +332,22 @@ namespace freebsd {    };  } // end namespace freebsd +  /// linux -- Directly call GNU Binutils assembler and linker +namespace linuxtools { +  class LLVM_LIBRARY_VISIBILITY Assemble : public Tool  { +  public: +    Assemble(const ToolChain &TC) : Tool("linux::Assemble", "assembler", +                                         TC) {} + +    virtual bool hasIntegratedCPP() const { return false; } + +    virtual void ConstructJob(Compilation &C, const JobAction &JA, +                              const InputInfo &Output, +                              const InputInfoList &Inputs, +                              const ArgList &TCArgs, +                              const char *LinkingOutput) const; +  }; +}    /// minix -- Directly call GNU Binutils assembler and linker  namespace minix {    class LLVM_LIBRARY_VISIBILITY Assemble : public Tool  { @@ -384,12 +355,9 @@ namespace minix {      Assemble(const ToolChain &TC) : Tool("minix::Assemble", "assembler",                                           TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -399,12 +367,9 @@ namespace minix {    public:      Link(const ToolChain &TC) : Tool("minix::Link", "linker", TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -419,12 +384,9 @@ namespace auroraux {      Assemble(const ToolChain &TC) : Tool("auroraux::Assemble", "assembler",                                           TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -434,12 +396,9 @@ namespace auroraux {    public:      Link(const ToolChain &TC) : Tool("auroraux::Link", "linker", TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -454,12 +413,9 @@ namespace dragonfly {      Assemble(const ToolChain &TC) : Tool("dragonfly::Assemble", "assembler",                                           TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -469,12 +425,9 @@ namespace dragonfly {    public:      Link(const ToolChain &TC) : Tool("dragonfly::Link", "linker", TC) {} -    virtual bool acceptsPipedInput() const { return true; } -    virtual bool canPipeOutput() const { return true; }      virtual bool hasIntegratedCPP() const { return false; }      virtual void ConstructJob(Compilation &C, const JobAction &JA, -                              Job &Dest,                                const InputInfo &Output,                                const InputInfoList &Inputs,                                const ArgList &TCArgs, @@ -482,6 +435,22 @@ namespace dragonfly {    };  } // end namespace dragonfly +  /// Visual studio tools. +namespace visualstudio { +  class LLVM_LIBRARY_VISIBILITY Link : public Tool  { +  public: +    Link(const ToolChain &TC) : Tool("visualstudio::Link", "linker", TC) {} + +    virtual bool hasIntegratedCPP() const { return false; } + +    virtual void ConstructJob(Compilation &C, const JobAction &JA, +                              const InputInfo &Output, +                              const InputInfoList &Inputs, +                              const ArgList &TCArgs, +                              const char *LinkingOutput) const; +  }; +} // end namespace visualstudio +  } // end namespace toolchains  } // end namespace driver  } // end namespace clang | 
