Tools.h revision 7c76412e934c18eb848c46ebf54f51e085f6bf57
1//===--- Tools.h - Tool Implementations -------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef CLANG_LIB_DRIVER_TOOLS_H_
11#define CLANG_LIB_DRIVER_TOOLS_H_
12
13#include "clang/Driver/Tool.h"
14
15#include "llvm/Support/Compiler.h"
16
17namespace clang {
18namespace driver {
19namespace tools {
20
21  class VISIBILITY_HIDDEN Clang : public Tool {
22  public:
23    Clang(const ToolChain &TC) : Tool(TC) {}
24
25    virtual bool acceptsPipedInput() const { return true; }
26    virtual bool canPipeOutput() const { return true; }
27    virtual bool hasIntegratedCPP() const { return true; }
28  };
29
30  class VISIBILITY_HIDDEN GCC_Preprocess : public Tool {
31  public:
32    GCC_Preprocess(const ToolChain &TC) : Tool(TC) {}
33
34    virtual bool acceptsPipedInput() const { return true; }
35    virtual bool canPipeOutput() const { return true; }
36    virtual bool hasIntegratedCPP() const { return false; }
37  };
38
39  class VISIBILITY_HIDDEN GCC_Precompile : public Tool  {
40  public:
41    GCC_Precompile(const ToolChain &TC) : Tool(TC) {}
42
43    virtual bool acceptsPipedInput() const { return true; }
44    virtual bool canPipeOutput() const { return false; }
45    virtual bool hasIntegratedCPP() const { return true; }
46  };
47
48  class VISIBILITY_HIDDEN GCC_Compile : public Tool  {
49  public:
50    GCC_Compile(const ToolChain &TC) : Tool(TC) {}
51
52    virtual bool acceptsPipedInput() const { return true; }
53    virtual bool canPipeOutput() const { return true; }
54    virtual bool hasIntegratedCPP() const { return true; }
55  };
56
57  class VISIBILITY_HIDDEN GCC_Assemble : public Tool  {
58  public:
59    GCC_Assemble(const ToolChain &TC) : Tool(TC) {}
60
61    virtual bool acceptsPipedInput() const { return true; }
62    virtual bool canPipeOutput() const { return false; }
63    virtual bool hasIntegratedCPP() const { return false; }
64  };
65
66  class VISIBILITY_HIDDEN GCC_Link : public Tool  {
67  public:
68    GCC_Link(const ToolChain &TC) : Tool(TC) {}
69
70    virtual bool acceptsPipedInput() const { return false; }
71    virtual bool canPipeOutput() const { return false; }
72    virtual bool hasIntegratedCPP() const { return false; }
73  };
74
75} // end namespace toolchains
76} // end namespace driver
77} // end namespace clang
78
79#endif
80