From: Andrew Trick Date: Wed, 7 Mar 2012 00:44:24 +0000 (+0000) Subject: More git-svn compatible version string, by request. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fddfbdbf143864c15ddfbda53e7c4851426bfefa;p=clang 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 --- 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