forked from OSchip/llvm-project
Truncate a SVN path part from --version output.
This is in sync with what clang does. llvm-svn: 285163
This commit is contained in:
parent
e38a8d2f14
commit
80695c1aef
|
@ -298,7 +298,7 @@ void LinkerDriver::main(ArrayRef<const char *> ArgsArr) {
|
|||
if (F) {
|
||||
Cpio.reset(*F);
|
||||
Cpio->append("response.txt", createResponseFile(Args));
|
||||
Cpio->append("version.txt", (getLLDVersion() + "\n").str());
|
||||
Cpio->append("version.txt", getLLDVersion() + "\n");
|
||||
} else
|
||||
error(F.getError(),
|
||||
Twine("--reproduce: failed to open ") + Path + ".cpio");
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
namespace lld {
|
||||
/// \brief Retrieves a string representing the complete lld version.
|
||||
llvm::StringRef getLLDVersion();
|
||||
std::string getLLDVersion();
|
||||
}
|
||||
|
||||
#endif // LLD_VERSION_H
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#define LLD_VERSION @LLD_VERSION@
|
||||
#define LLD_VERSION_STRING "@LLD_VERSION@"
|
||||
#define LLD_VERSION_MAJOR @LLD_VERSION_MAJOR@
|
||||
#define LLD_VERSION_MINOR @LLD_VERSION_MINOR@
|
||||
#define LLD_REVISION_STRING "@LLD_REVISION@"
|
||||
|
|
|
@ -15,24 +15,29 @@
|
|||
|
||||
using namespace llvm;
|
||||
|
||||
#define JOIN2(X) #X
|
||||
#define JOIN(X, Y) JOIN2(X.Y)
|
||||
// Returns an SVN repository path, which is usually "trunk".
|
||||
static std::string getRepositoryPath() {
|
||||
StringRef S = LLD_REPOSITORY_STRING;
|
||||
size_t Pos = S.find("lld/");
|
||||
if (Pos != StringRef::npos)
|
||||
return S.substr(Pos + 4);
|
||||
return S;
|
||||
}
|
||||
|
||||
// A string that describes the lld version number, e.g., "1.0".
|
||||
#define VERSION JOIN(LLD_VERSION_MAJOR, LLD_VERSION_MINOR)
|
||||
// Returns an SVN repository name, e.g., " (trunk 284614)"
|
||||
// or an empty string if no repository info is available.
|
||||
static std::string getRepository() {
|
||||
std::string Repo = getRepositoryPath();
|
||||
std::string Rev = LLD_REVISION_STRING;
|
||||
|
||||
// A string that describes SVN repository, e.g.,
|
||||
// " (https://llvm.org/svn/llvm-project/lld/trunk 284614)".
|
||||
#if defined(LLD_REPOSITORY_STRING) && defined(LLD_REVISION_STRING)
|
||||
#define REPO " (" LLD_REPOSITORY_STRING " " LLD_REVISION_STRING ")"
|
||||
#elif defined(LLD_REPOSITORY_STRING)
|
||||
#define REPO " (" LLD_REPOSITORY_STRING ")"
|
||||
#elif defined(LLD_REVISION_STRING)
|
||||
#define REPO " (" LLD_REVISION_STRING ")"
|
||||
#else
|
||||
#define REPO ""
|
||||
#endif
|
||||
if (Repo.empty() && Rev.empty())
|
||||
return "";
|
||||
if (!Repo.empty() && !Rev.empty())
|
||||
return " (" + Repo + " " + Rev + ")";
|
||||
return " (" + Repo + Rev + ")";
|
||||
}
|
||||
|
||||
// Returns a version string, e.g.,
|
||||
// "LLD 4.0 (https://llvm.org/svn/llvm-project/lld/trunk 284614)".
|
||||
StringRef lld::getLLDVersion() { return "LLD " VERSION REPO; }
|
||||
// Returns a version string, e.g., "LLD 4.0 (lld/trunk 284614)".
|
||||
std::string lld::getLLDVersion() {
|
||||
return "LLD " + std::string(LLD_VERSION_STRING) + getRepository();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue