diff options
author | Mikhail Glushenkov <foldr@codedgers.com> | 2008-10-03 09:09:34 +0000 |
---|---|---|
committer | Mikhail Glushenkov <foldr@codedgers.com> | 2008-10-03 09:09:34 +0000 |
commit | 9d1b696441679fcd549cfb3a1be9337ef54f26cd (patch) | |
tree | 6232054d16bcd5f43cd5e07c1b777fb9ad45e05b /tools/llvmc2/Action.cpp | |
parent | e47561ccff9c7a76f9392b26ae6202e30f1247ed (diff) |
Fix build breakage (again) when srcdir != objdir, other small fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56998 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvmc2/Action.cpp')
-rw-r--r-- | tools/llvmc2/Action.cpp | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/tools/llvmc2/Action.cpp b/tools/llvmc2/Action.cpp deleted file mode 100644 index c0a1b849bc..0000000000 --- a/tools/llvmc2/Action.cpp +++ /dev/null @@ -1,78 +0,0 @@ -//===--- Action.cpp - The LLVM Compiler Driver ------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open -// Source License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// Action class - implementation and auxiliary functions. -// -//===----------------------------------------------------------------------===// - -#include "llvm/CompilerDriver/Action.h" - -#include "llvm/Support/CommandLine.h" -#include "llvm/System/Program.h" - -#include <iostream> -#include <stdexcept> - -using namespace llvm; -using namespace llvmc; - -extern cl::opt<bool> DryRun; -extern cl::opt<bool> VerboseMode; - -namespace { - int ExecuteProgram(const std::string& name, - const StrVector& args) { - sys::Path prog = sys::Program::FindProgramByName(name); - - if (prog.isEmpty()) - throw std::runtime_error("Can't find program '" + name + "'"); - if (!prog.canExecute()) - throw std::runtime_error("Program '" + name + "' is not executable."); - - // Build the command line vector and the redirects array. - const sys::Path* redirects[3] = {0,0,0}; - sys::Path stdout_redirect; - - std::vector<const char*> argv; - argv.reserve((args.size()+2)); - argv.push_back(name.c_str()); - - for (StrVector::const_iterator B = args.begin(), E = args.end(); - B!=E; ++B) { - if (*B == ">") { - ++B; - stdout_redirect.set(*B); - redirects[1] = &stdout_redirect; - } - else { - argv.push_back((*B).c_str()); - } - } - argv.push_back(0); // null terminate list. - - // Invoke the program. - return sys::Program::ExecuteAndWait(prog, &argv[0], 0, &redirects[0]); - } - - void print_string (const std::string& str) { - std::cerr << str << ' '; - } -} - -int llvmc::Action::Execute() const { - if (DryRun || VerboseMode) { - std::cerr << Command_ << " "; - std::for_each(Args_.begin(), Args_.end(), print_string); - std::cerr << '\n'; - } - if (DryRun) - return 0; - else - return ExecuteProgram(Command_, Args_); -} |