gollvm: honor --version flag
Add support for --version command line option.
Change-Id: Ib77f05f04fe8587f59b8199b6be351db1dfec130
Reviewed-on: https://go-review.googlesource.com/c/162986
Reviewed-by: Cherry Zhang <cherryyz@google.com>
diff --git a/driver-main/llvm-goc.cpp b/driver-main/llvm-goc.cpp
index f03eced..3970074 100644
--- a/driver-main/llvm-goc.cpp
+++ b/driver-main/llvm-goc.cpp
@@ -106,6 +106,12 @@
exit(0);
}
+ // Honor -version
+ if (args_.hasArg(gollvm::options::OPT_version)) {
+ Driver::emitVersion();
+ exit(0);
+ }
+
// Honor --print-multi-lib. FIXME: add real multilib support.
if (args_.hasArg(gollvm::options::OPT_print_multi_lib)) {
llvm::outs() << ".;@m64\n";
diff --git a/driver/Driver.cpp b/driver/Driver.cpp
index dfe748f..8323881 100644
--- a/driver/Driver.cpp
+++ b/driver/Driver.cpp
@@ -19,6 +19,7 @@
#include "Driver.h"
#include "LinuxToolChain.h"
#include "ToolChain.h"
+#include "GollvmConfig.h"
using namespace llvm;
@@ -69,7 +70,8 @@
{
// NB: the go build tool keys off the presence of the "experimental"
// keyword (hashes compiler binary if detected).
- llvm::errs() << "gollvm version 1 (experimental)\n";
+ llvm::errs() << "gollvm version 1 (experimental) [LLVM version "
+ << GOLLVM_COMPILERVERSION << "]\n";
}
std::string Driver::getFilePath(llvm::StringRef name,
diff --git a/driver/Driver.h b/driver/Driver.h
index 42c7936..1b62faa 100644
--- a/driver/Driver.h
+++ b/driver/Driver.h
@@ -116,6 +116,7 @@
void appendInputActions(const inarglist &infiles,
ActionList &result,
Compilation &compilation);
+ static void emitVersion();
private:
llvm::Triple triple_;
@@ -134,7 +135,6 @@
bool processAction(Action *act, Compilation &compilation, bool lastAct);
ArtifactList collectInputArtifacts(Action *act, InternalTool *it);
- void emitVersion();
};
template<typename IT>
diff --git a/driver/GollvmOptions.td b/driver/GollvmOptions.td
index 3eda9cf..7142b5f 100644
--- a/driver/GollvmOptions.td
+++ b/driver/GollvmOptions.td
@@ -107,6 +107,9 @@
def help : Flag<["-", "--"], "help">,
HelpText<"Display available options">;
+def version : Flag<["--"], "version">,
+ HelpText<"Display compiler version information.">;
+
def B : JoinedOrSeparate<["-"], "B">,
Flags<[DriverOption]>, MetaVarName<"<prefix>">,
HelpText<"Add prefix for searching binaries and libraries">;