diff options
author | Jia Liu <proljc@gmail.com> | 2012-03-02 14:37:41 +0000 |
---|---|---|
committer | Jia Liu <proljc@gmail.com> | 2012-03-02 14:37:41 +0000 |
commit | f8e5d4cf39220e9b7c7ee744f634fce6dec28a76 (patch) | |
tree | 260a48ffa8e19d3d3258b3c574228fd4a9a2ab81 /lib/Basic/Version.cpp | |
parent | b4f0bd6864f33bc2fd8246f1f841d87e60c4ffc8 (diff) |
clang -v support for separate clang.git and llvm.git, patch by Andrew Trick.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151910 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Basic/Version.cpp')
-rw-r--r-- | lib/Basic/Version.cpp | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/lib/Basic/Version.cpp b/lib/Basic/Version.cpp index 10b9364587..2934822c80 100644 --- a/lib/Basic/Version.cpp +++ b/lib/Basic/Version.cpp @@ -19,7 +19,7 @@ #include <cstdlib> namespace clang { - + std::string getClangRepositoryPath() { #if defined(CLANG_REPOSITORY_STRING) return CLANG_REPOSITORY_STRING; @@ -50,6 +50,21 @@ std::string getClangRepositoryPath() { #endif } +std::string getLLVMRepositoryPath() { +#ifdef LLVM_REPOSITORY + StringRef URL(LLVM_REPOSITORY); +#else + StringRef URL(""); +#endif + + // Trim path prefix off, assuming path came from standard llvm path. + size_t Start = URL.find("llvm/"); + if (Start != StringRef::npos) + URL = URL.substr(Start + 5); + + return URL; +} + std::string getClangRevision() { #ifdef SVN_REVISION return SVN_REVISION; @@ -58,6 +73,14 @@ std::string getClangRevision() { #endif } +std::string getLLVMRevision() { +#ifdef LLVM_REVISION + return LLVM_REVISION; +#else + return ""; +#endif +} + std::string getClangFullRepositoryVersion() { std::string buf; llvm::raw_string_ostream OS(buf); @@ -70,9 +93,17 @@ std::string getClangFullRepositoryVersion() { OS << ' '; OS << Revision; } + // Support LLVM in a separate repository. + std::string LLVMRev = getLLVMRevision(); + if (!LLVMRev.empty() && LLVMRev != Revision) { + std::string LLVMRepo = getLLVMRepositoryPath(); + if (!LLVMRepo.empty()) + OS << ' ' << LLVMRepo; + OS << ' ' << LLVMRev; + } return OS.str(); } - + std::string getClangFullVersion() { std::string buf; llvm::raw_string_ostream OS(buf); |