/// Tool - Information on a specific compilation tool.
class Tool {
+ /// The tool name (for debugging).
+ const char *Name;
+
+ /// The tool chain this tool is a part of.
const ToolChain &TheToolChain;
public:
- Tool(const ToolChain &TC);
+ Tool(const char *Name, const ToolChain &TC);
public:
virtual ~Tool();
+ const char *getName() const { return Name; }
+
const ToolChain &getToolChain() const { return TheToolChain; }
virtual bool acceptsPipedInput() const = 0;
default:
assert(0 && "Invalid tool kind.");
case Action::PreprocessJobClass:
- T = new tools::GCC_Preprocess(*this); break;
+ T = new tools::gcc::Preprocess(*this); break;
case Action::PrecompileJobClass:
- T = new tools::GCC_Precompile(*this); break;
+ T = new tools::gcc::Precompile(*this); break;
case Action::AnalyzeJobClass:
T = new tools::Clang(*this); break;
case Action::CompileJobClass:
- T = new tools::GCC_Compile(*this); break;
+ T = new tools::gcc::Compile(*this); break;
case Action::AssembleJobClass:
- T = new tools::GCC_Assemble(*this); break;
+ T = new tools::gcc::Assemble(*this); break;
case Action::LinkJobClass:
- T = new tools::GCC_Assemble(*this); break;
+ T = new tools::gcc::Link(*this); break;
}
}
class VISIBILITY_HIDDEN Clang : public Tool {
public:
- Clang(const ToolChain &TC) : Tool(TC) {}
+ Clang(const ToolChain &TC) : Tool("clang", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
virtual bool hasIntegratedCPP() const { return true; }
};
- class VISIBILITY_HIDDEN GCC_Preprocess : public Tool {
+ /// gcc - Generic GCC tool implementations.
+namespace gcc {
+ class VISIBILITY_HIDDEN Preprocess : public Tool {
public:
- GCC_Preprocess(const ToolChain &TC) : Tool(TC) {}
+ Preprocess(const ToolChain &TC) : Tool("gcc::Preprocess", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
virtual bool hasIntegratedCPP() const { return false; }
};
- class VISIBILITY_HIDDEN GCC_Precompile : public Tool {
+ class VISIBILITY_HIDDEN Precompile : public Tool {
public:
- GCC_Precompile(const ToolChain &TC) : Tool(TC) {}
+ Precompile(const ToolChain &TC) : Tool("gcc::Precompile", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return false; }
virtual bool hasIntegratedCPP() const { return true; }
};
- class VISIBILITY_HIDDEN GCC_Compile : public Tool {
+ class VISIBILITY_HIDDEN Compile : public Tool {
public:
- GCC_Compile(const ToolChain &TC) : Tool(TC) {}
+ Compile(const ToolChain &TC) : Tool("gcc::Compile", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return true; }
virtual bool hasIntegratedCPP() const { return true; }
};
- class VISIBILITY_HIDDEN GCC_Assemble : public Tool {
+ class VISIBILITY_HIDDEN Assemble : public Tool {
public:
- GCC_Assemble(const ToolChain &TC) : Tool(TC) {}
+ Assemble(const ToolChain &TC) : Tool("gcc::Assemble", TC) {}
virtual bool acceptsPipedInput() const { return true; }
virtual bool canPipeOutput() const { return false; }
virtual bool hasIntegratedCPP() const { return false; }
};
- class VISIBILITY_HIDDEN GCC_Link : public Tool {
+ class VISIBILITY_HIDDEN Link : public Tool {
public:
- GCC_Link(const ToolChain &TC) : Tool(TC) {}
+ Link(const ToolChain &TC) : Tool("gcc::Link", TC) {}
virtual bool acceptsPipedInput() const { return false; }
virtual bool canPipeOutput() const { return false; }
virtual bool hasIntegratedCPP() const { return false; }
};
+} // end namespace gcc
} // end namespace toolchains
} // end namespace driver