blob: 6f6b3dffbcbf4d5c9fd99e466d1a87ce26e0a620 [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 {
Daniel Dunbar7c764122009-03-17 22:18:43 +000019namespace tools {
Daniel Dunbar542fae92009-03-17 22:07:58 +000020
Daniel Dunbar7c764122009-03-17 22:18:43 +000021 class VISIBILITY_HIDDEN Clang : public Tool {
Daniel Dunbar542fae92009-03-17 22:07:58 +000022 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
Daniel Dunbar7c764122009-03-17 22:18:43 +000030 class VISIBILITY_HIDDEN GCC_Preprocess : public Tool {
Daniel Dunbar542fae92009-03-17 22:07:58 +000031 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
Daniel Dunbar7c764122009-03-17 22:18:43 +000039 class VISIBILITY_HIDDEN GCC_Precompile : public Tool {
Daniel Dunbar542fae92009-03-17 22:07:58 +000040 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
Daniel Dunbar7c764122009-03-17 22:18:43 +000048 class VISIBILITY_HIDDEN GCC_Compile : public Tool {
Daniel Dunbar542fae92009-03-17 22:07:58 +000049 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
Daniel Dunbar7c764122009-03-17 22:18:43 +000057 class VISIBILITY_HIDDEN GCC_Assemble : public Tool {
Daniel Dunbar542fae92009-03-17 22:07:58 +000058 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
Daniel Dunbar7c764122009-03-17 22:18:43 +000066 class VISIBILITY_HIDDEN GCC_Link : public Tool {
Daniel Dunbar542fae92009-03-17 22:07:58 +000067 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