#define CLANG_DRIVER_COMPILATION_H_
namespace clang {
+namespace driver {
/// Compilation - A set of tasks to perform for a single driver
/// invocation.
int Execute() const;
};
+} // end namespace driver
} // end namespace clang
#endif
#define CLANG_DRIVER_DRIVER_H_
namespace clang {
+namespace driver {
class Compilation;
+ class OptTable;
/// Driver - Encapsulate logic for constructing compilation processes
/// from a set of gcc-driver-like command line arguments.
class Driver {
+ OptTable *Opts;
+
public:
Driver();
~Driver();
+ const OptTable &getOpts() const { return *Opts; }
+
/// BuildCompilation - Construct a compilation object for a command
/// line argument vector.
Compilation *BuildCompilation(int argc, const char **argv);
};
+} // end namespace driver
} // end namespace clang
#endif
//===----------------------------------------------------------------------===//
#include "clang/Driver/Compilation.h"
-using namespace clang;
+using namespace clang::driver;
Compilation::Compilation() {
}
//
//===----------------------------------------------------------------------===//
-#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
-using namespace clang;
-Driver::Driver() {
+#include "clang/Driver/Arg.h"
+#include "clang/Driver/ArgList.h"
+#include "clang/Driver/Compilation.h"
+#include "clang/Driver/Options.h"
+using namespace clang::driver;
+
+Driver::Driver() : Opts(new OptTable()) {
+
}
Driver::~Driver() {
+ delete Opts;
}
Compilation *Driver::BuildCompilation(int argc, const char **argv) {
#include "llvm/ADT/OwningPtr.h"
#include "llvm/System/Signals.h"
-using namespace clang;
+using namespace clang::driver;
int main(int argc, const char **argv) {
llvm::sys::PrintStackTraceOnErrorSignal();