blob: 71ca2e900872b870279c0063a8dd5fca44c986fb [file] [log] [blame]
Daniel Dunbar542fae92009-03-17 22:07:58 +00001//===--- 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 VISIBILITY_HIDDEN {
20
21 class 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 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 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 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 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 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