summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvmc/examples/mcc16/Main.cpp
diff options
context:
space:
mode:
authorMikhail Glushenkov <foldr@codedgers.com>2010-08-19 20:04:19 +0000
committerMikhail Glushenkov <foldr@codedgers.com>2010-08-19 20:04:19 +0000
commitb2ca0d19f2d43b2b64eb5a6f3c5edbe1532757db (patch)
treeb5f517f9a28145dab82a7f2ec667dda37d60ebb4 /llvm/tools/llvmc/examples/mcc16/Main.cpp
parent34c5f1be0d84001c9fbebe694102c1154e060583 (diff)
downloadbcm5719-llvm-b2ca0d19f2d43b2b64eb5a6f3c5edbe1532757db.tar.gz
bcm5719-llvm-b2ca0d19f2d43b2b64eb5a6f3c5edbe1532757db.zip
llvmc: Update examples.
llvm-svn: 111553
Diffstat (limited to 'llvm/tools/llvmc/examples/mcc16/Main.cpp')
-rw-r--r--llvm/tools/llvmc/examples/mcc16/Main.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/llvm/tools/llvmc/examples/mcc16/Main.cpp b/llvm/tools/llvmc/examples/mcc16/Main.cpp
new file mode 100644
index 00000000000..55ae9128394
--- /dev/null
+++ b/llvm/tools/llvmc/examples/mcc16/Main.cpp
@@ -0,0 +1,57 @@
+//===--- Main.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.
+//
+//===----------------------------------------------------------------------===//
+//
+// Usually this file just includes CompilerDriver/Main.inc, but here we apply
+// some trickery to make the built-in '-save-temps' option hidden and enable
+// '--temp-dir' by default.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/CompilerDriver/BuiltinOptions.h"
+#include "llvm/CompilerDriver/Main.h"
+
+#include "llvm/System/Path.h"
+#include "llvm/Config/config.h"
+
+#include <iostream>
+
+#include "PIC16.inc"
+
+namespace {
+
+// Modify the PACKAGE_VERSION to use build number in top level configure file.
+void PIC16VersionPrinter(void) {
+ std::cout << "MPLAB C16 1.0 " << PACKAGE_VERSION << "\n";
+}
+
+}
+
+int main(int argc, char** argv) {
+
+ // HACK
+ SaveTemps.setHiddenFlag(llvm::cl::Hidden);
+ TempDirname.setHiddenFlag(llvm::cl::Hidden);
+ Languages.setHiddenFlag(llvm::cl::Hidden);
+ DryRun.setHiddenFlag(llvm::cl::Hidden);
+
+ llvm::cl::SetVersionPrinter(PIC16VersionPrinter);
+
+ // Ask for a standard temp dir, but just cache its basename., and delete it.
+ llvm::sys::Path tempDir;
+ tempDir = llvm::sys::Path::GetTemporaryDirectory();
+ TempDirname = tempDir.getBasename();
+ tempDir.eraseFromDisk(true);
+
+ // We are creating a temp dir in current dir, with the cached name.
+ // But before that remove if one already exists with that name..
+ tempDir = TempDirname;
+ tempDir.eraseFromDisk(true);
+
+ return llvmc::Main(argc, argv);
+}
OpenPOWER on IntegriCloud