aboutsummaryrefslogtreecommitdiff
path: root/lib/Basic/Version.cpp
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2012-03-07 00:44:24 +0000
committerAndrew Trick <atrick@apple.com>2012-03-07 00:44:24 +0000
commitfddfbdbf143864c15ddfbda53e7c4851426bfefa (patch)
tree0b486cb06f995893c235bbc24cddec22d03833b7 /lib/Basic/Version.cpp
parent485ea8e8ea6fd0ab406f10795e35087ee9a07689 (diff)
More git-svn compatible version string, by request.
If you're using git-svn, the clang and llvm repository will typically map to a different revision. Before we had: clang version 3.1 (trunk 152167 trunk 152162) After this change: clang version 3.1 (trunk 152167) (llvm/trunk 152162) So it's self-descriptive with an extra parens group. Which is more compatible with version string parsers is probably debatable, but this style was requested. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152183 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Basic/Version.cpp')
-rw-r--r--lib/Basic/Version.cpp29
1 files changed, 18 insertions, 11 deletions
diff --git a/lib/Basic/Version.cpp b/lib/Basic/Version.cpp
index 2934822c80..2183be4356 100644
--- a/lib/Basic/Version.cpp
+++ b/lib/Basic/Version.cpp
@@ -58,9 +58,11 @@ std::string getLLVMRepositoryPath() {
#endif
// Trim path prefix off, assuming path came from standard llvm path.
+ // Leave "llvm/" prefix to distinguish the following llvm revision from the
+ // clang revision.
size_t Start = URL.find("llvm/");
if (Start != StringRef::npos)
- URL = URL.substr(Start + 5);
+ URL = URL.substr(Start);
return URL;
}
@@ -86,20 +88,25 @@ std::string getClangFullRepositoryVersion() {
llvm::raw_string_ostream OS(buf);
std::string Path = getClangRepositoryPath();
std::string Revision = getClangRevision();
- if (!Path.empty())
- OS << Path;
- if (!Revision.empty()) {
+ if (!Path.empty() || !Revision.empty()) {
+ OS << '(';
if (!Path.empty())
- OS << ' ';
- OS << Revision;
- }
+ OS << Path;
+ if (!Revision.empty()) {
+ if (!Path.empty())
+ OS << ' ';
+ OS << Revision;
+ }
+ OS << ')';
+ }
// Support LLVM in a separate repository.
std::string LLVMRev = getLLVMRevision();
if (!LLVMRev.empty() && LLVMRev != Revision) {
+ OS << " (";
std::string LLVMRepo = getLLVMRepositoryPath();
if (!LLVMRepo.empty())
- OS << ' ' << LLVMRepo;
- OS << ' ' << LLVMRev;
+ OS << LLVMRepo << ' ';
+ OS << LLVMRev << ')';
}
return OS.str();
}
@@ -110,8 +117,8 @@ std::string getClangFullVersion() {
#ifdef CLANG_VENDOR
OS << CLANG_VENDOR;
#endif
- OS << "clang version " CLANG_VERSION_STRING " ("
- << getClangFullRepositoryVersion() << ')';
+ OS << "clang version " CLANG_VERSION_STRING " "
+ << getClangFullRepositoryVersion();
// If vendor supplied, include the base LLVM version as well.
#ifdef CLANG_VENDOR