driver.cpp revision 1b3bb6efc59a21f794b534078f9ae7e95393f510
13ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar//===-- driver.cpp - Clang GCC-Compatible Driver --------------------------===//
23ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar//
33ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar//                     The LLVM Compiler Infrastructure
43ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar//
53ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar// This file is distributed under the University of Illinois Open Source
63ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar// License. See LICENSE.TXT for details.
73ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar//
83ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar//===----------------------------------------------------------------------===//
93ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar//
101eb4e64eed08837b85a375d6a953503daa844f07Daniel Dunbar// This is the entry point to the clang driver; it is a thin wrapper
111eb4e64eed08837b85a375d6a953503daa844f07Daniel Dunbar// for functionality in the Driver clang library.
123ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar//
133ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar//===----------------------------------------------------------------------===//
143ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar
153ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar#include "clang/Driver/Compilation.h"
163ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar#include "clang/Driver/Driver.h"
172c6f6f3c170502c5b810102cf85f05732a2aa9d0Daniel Dunbar#include "clang/Driver/Option.h"
182c6f6f3c170502c5b810102cf85f05732a2aa9d0Daniel Dunbar#include "clang/Driver/Options.h"
192c6f6f3c170502c5b810102cf85f05732a2aa9d0Daniel Dunbar
203ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar#include "llvm/ADT/OwningPtr.h"
213ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar#include "llvm/System/Signals.h"
221b3bb6efc59a21f794b534078f9ae7e95393f510Daniel Dunbarusing namespace clang::driver;
233ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar
243ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbarint main(int argc, const char **argv) {
253ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar  llvm::sys::PrintStackTraceOnErrorSignal();
263ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar
273ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar  llvm::OwningPtr<Driver> TheDriver(new Driver());
283ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar
293ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar  llvm::OwningPtr<Compilation> C(TheDriver->BuildCompilation(argc, argv));
303ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar
313ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar  return C->Execute();
323ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar}
33