diff options
Diffstat (limited to 'gnu/llvm/tools/clang/lib/Basic/Version.cpp')
| -rw-r--r-- | gnu/llvm/tools/clang/lib/Basic/Version.cpp | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/gnu/llvm/tools/clang/lib/Basic/Version.cpp b/gnu/llvm/tools/clang/lib/Basic/Version.cpp deleted file mode 100644 index 853696ba85c..00000000000 --- a/gnu/llvm/tools/clang/lib/Basic/Version.cpp +++ /dev/null @@ -1,151 +0,0 @@ -//===- Version.cpp - Clang 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 Clang. -// -//===----------------------------------------------------------------------===// - -#include "clang/Basic/Version.h" -#include "clang/Basic/LLVM.h" -#include "clang/Config/config.h" -#include "llvm/Support/raw_ostream.h" -#include <cstdlib> -#include <cstring> - -#ifdef HAVE_SVN_VERSION_INC -# include "SVNVersion.inc" -#endif - -namespace clang { - -std::string getClangRepositoryPath() { -#if defined(CLANG_REPOSITORY_STRING) - return CLANG_REPOSITORY_STRING; -#else -#ifdef SVN_REPOSITORY - StringRef URL(SVN_REPOSITORY); -#else - StringRef URL(""); -#endif - - // If the SVN_REPOSITORY is empty, try to use the SVN keyword. This helps us - // pick up a tag in an SVN export, for example. - StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_801/final/lib/Basic/Version.cpp $"); - if (URL.empty()) { - URL = SVNRepository.slice(SVNRepository.find(':'), - SVNRepository.find("/lib/Basic")); - } - - // Strip off version from a build from an integration branch. - URL = URL.slice(0, URL.find("/src/tools/clang")); - - // Trim path prefix off, assuming path came from standard cfe path. - size_t Start = URL.find("cfe/"); - if (Start != StringRef::npos) - URL = URL.substr(Start + 4); - - return URL; -#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. - // 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); - - return URL; -} - -std::string getClangRevision() { -#ifdef SVN_REVISION - return SVN_REVISION; -#else - return ""; -#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); - std::string Path = getClangRepositoryPath(); - std::string Revision = getClangRevision(); - if (!Path.empty() || !Revision.empty()) { - OS << '('; - if (!Path.empty()) - 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 << ')'; - } - return OS.str(); -} - -std::string getClangFullVersion() { - return getClangToolFullVersion("clang"); -} - -std::string getClangToolFullVersion(StringRef ToolName) { - std::string buf; - llvm::raw_string_ostream OS(buf); -#ifdef CLANG_VENDOR - OS << CLANG_VENDOR; -#endif - OS << ToolName << " version " CLANG_VERSION_STRING " " - << getClangFullRepositoryVersion(); - - // If vendor supplied, include the base LLVM version as well. -#ifdef CLANG_VENDOR - OS << " (based on " << BACKEND_PACKAGE_STRING << ")"; -#endif - - return OS.str(); -} - -std::string getClangFullCPPVersion() { - // The version string we report in __VERSION__ is just a compacted version of - // the one we report on the command line. - std::string buf; - llvm::raw_string_ostream OS(buf); -#ifdef CLANG_VENDOR - OS << CLANG_VENDOR; -#endif - OS << "Clang " CLANG_VERSION_STRING " " << getClangFullRepositoryVersion(); - return OS.str(); -} - -} // end namespace clang |
