diff options
Diffstat (limited to 'tools/llvmc/example/mcc16/driver/Main.cpp')
-rw-r--r-- | tools/llvmc/example/mcc16/driver/Main.cpp | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/tools/llvmc/example/mcc16/driver/Main.cpp b/tools/llvmc/example/mcc16/driver/Main.cpp index b1f5b67..f42e17f 100644 --- a/tools/llvmc/example/mcc16/driver/Main.cpp +++ b/tools/llvmc/example/mcc16/driver/Main.cpp @@ -7,8 +7,31 @@ // //===----------------------------------------------------------------------===// // -// Just include CompilerDriver/Main.inc. +// 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/Main.inc" +#include "llvm/CompilerDriver/BuiltinOptions.h" +#include "llvm/CompilerDriver/ForceLinkage.h" +#include "llvm/System/Path.h" + +namespace llvmc { + int Main(int argc, char** argv); +} + +int main(int argc, char** argv) { + + // HACK + SaveTemps.setHiddenFlag(llvm::cl::Hidden); + TempDirname = "tmp-objs"; + + // Remove the temp dir if already exists. + llvm::sys::Path tempDir; + tempDir = TempDirname; + tempDir.eraseFromDisk(true); + + llvmc::ForceLinkage(); + return llvmc::Main(argc, argv); +} |