Add a --version option for every tool that prints out:
authorReid Spencer <rspencer@reidspencer.com>
Wed, 4 Aug 2004 00:36:06 +0000 (00:36 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Wed, 4 Aug 2004 00:36:06 +0000 (00:36 +0000)
Low Level Virtual Machine ($PACKAGE_NAME) $PACKAGE_VERSION

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15454 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/CommandLine.cpp

index 0e0cad96eaa80f43ca9d25b7a84e9d6881307d06..131b95a75cfe49540b1e85b4e07988bb20fe2bfd 100644 (file)
@@ -16,6 +16,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "Config/config.h"
 #include "Support/CommandLine.h"
 #include <algorithm>
 #include <map>
@@ -176,7 +177,7 @@ static bool EatsUnboundedNumberOfValues(const Option *O) {
 /// them later.
 ///
 static void ParseCStringVector (std::vector<char *> &output,
-                               const char *input) {
+                                const char *input) {
   // Characters which will be treated as token separators:
   static const char *delims = " \v\f\t\r\n";
 
@@ -891,6 +892,16 @@ public:
   }
 };
 
+class VersionPrinter {
+public:
+  void operator=(bool OptionWasSpecified) {
+    if (OptionWasSpecified) {
+      std::cerr << "Low Level Virtual Machine (" << PACKAGE_NAME << ") " 
+        << PACKAGE_VERSION << " (see http://llvm.org/)\n";
+      exit(1);
+    }
+  }
+};
 
 
 // Define the two HelpPrinter instances that are used to print out help, or
@@ -907,4 +918,10 @@ cl::opt<HelpPrinter, true, parser<bool> >
 HHOp("help-hidden", cl::desc("display all available options"),
      cl::location(HiddenPrinter), cl::Hidden, cl::ValueDisallowed);
 
+// Define the --version option that prints out the LLVM version for the tool
+VersionPrinter VersionPrinterInstance;
+cl::opt<VersionPrinter, true, parser<bool> >
+VersOp("version", cl::desc("display the version"), 
+    cl::location(VersionPrinterInstance), cl::ValueDisallowed);
+
 } // End anonymous namespace