-//===--- Tools.h - The LLVM Compiler Driver ---------------------*- C++ -*-===//
+//===--- Action.cpp - The LLVM Compiler Driver ------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
using namespace llvm;
using namespace llvmc;
+extern cl::opt<bool> DryRun;
extern cl::opt<bool> VerboseMode;
namespace {
int ExecuteProgram(const std::string& name,
- const StringVector& args) {
+ const StrVector& args) {
sys::Path prog = sys::Program::FindProgramByName(name);
if (prog.isEmpty())
argv.reserve((args.size()+2));
argv.push_back(name.c_str());
- for (StringVector::const_iterator B = args.begin(), E = args.end();
+ for (StrVector::const_iterator B = args.begin(), E = args.end();
B!=E; ++B) {
if (*B == ">") {
++B;
}
int llvmc::Action::Execute() const {
- if (VerboseMode) {
+ if (DryRun || VerboseMode) {
std::cerr << Command_ << " ";
std::for_each(Args_.begin(), Args_.end(), print_string);
std::cerr << '\n';
}
- return ExecuteProgram(Command_, Args_);
+ if (DryRun)
+ return 0;
+ else
+ return ExecuteProgram(Command_, Args_);
}