diff options
author | Shankar Easwaran <shankarke@gmail.com> | 2014-10-08 03:47:51 +0000 |
---|---|---|
committer | Shankar Easwaran <shankarke@gmail.com> | 2014-10-08 03:47:51 +0000 |
commit | c3550f9231b58a48f02ef86eab980f7c19466909 (patch) | |
tree | 74d0bd5e4625ff27be874fa89c01debfb7361d0f /lld/lib/Config/Version.cpp | |
parent | d9d0f86a791ebcc1bc67c061cea7a37d772f1077 (diff) | |
download | llvm-c3550f9231b58a48f02ef86eab980f7c19466909.zip llvm-c3550f9231b58a48f02ef86eab980f7c19466909.tar.gz llvm-c3550f9231b58a48f02ef86eab980f7c19466909.tar.bz2 |
Add support to print version.
Summary: Add support in the universal driver to print the lld version and the
repository version.
Test Plan: A driver test is added
Reviewers: kledzik, ruiu
Reviewed By: ruiu
Subscribers: llvm-commits
Projects: #lld
Differential Revision: http://reviews.llvm.org/D5641
llvm-svn: 219277
Diffstat (limited to 'lld/lib/Config/Version.cpp')
-rw-r--r-- | lld/lib/Config/Version.cpp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/lld/lib/Config/Version.cpp b/lld/lib/Config/Version.cpp new file mode 100644 index 0000000..b64ccef --- /dev/null +++ b/lld/lib/Config/Version.cpp @@ -0,0 +1,66 @@ +//===- lib/Config/Version.cpp - LLD Version Number ---------------*- C++-=====// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines several version-related utility functions for LLD. +// +//===----------------------------------------------------------------------===// + +#include "lld/Config/Version.h" +#include "llvm/Support/raw_ostream.h" +#include <cstdlib> +#include <cstring> + +using namespace llvm; + +namespace lld { + +StringRef getLLDRepositoryPath() { +#ifdef LLD_REPOSITORY_STRING + return LLD_REPOSITORY_STRING; +#else + return ""; +#endif +} + +StringRef getLLDRevision() { +#ifdef LLD_REVISION_STRING + return LLD_REVISION_STRING; +#else + return ""; +#endif +} + +std::string getLLDRepositoryVersion() { + std::string buf; + llvm::raw_string_ostream OS(buf); + std::string Path = getLLDRepositoryPath(); + std::string Revision = getLLDRevision(); + if (!Path.empty() || !Revision.empty()) { + OS << '('; + if (!Path.empty()) + OS << Path; + if (!Revision.empty()) { + if (!Path.empty()) + OS << ' '; + OS << Revision; + } + OS << ')'; + } + return OS.str(); +} + +StringRef getLLDVersion() { +#ifdef LLD_VERSION_STRING + return LLD_VERSION_STRING; +#else + return ""; +#endif +} + +} // end namespace lld |