clang: lib/Basic/Version.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
15#include "clang/Config/config.h"
16#include "llvm/Support/raw_ostream.h"
17#include
18#include
19
20#include "VCSVersion.inc"
21
23
25#if defined(CLANG_REPOSITORY_STRING)
26 return CLANG_REPOSITORY_STRING;
27#else
28#ifdef CLANG_REPOSITORY
29 return CLANG_REPOSITORY;
30#else
31 return "";
32#endif
33#endif
34}
35
37#ifdef LLVM_REPOSITORY
38 return LLVM_REPOSITORY;
39#else
40 return "";
41#endif
42}
43
45#ifdef CLANG_REVISION
46 return CLANG_REVISION;
47#else
48 return "";
49#endif
50}
51
53#ifdef LLVM_REVISION
54 return LLVM_REVISION;
55#else
56 return "";
57#endif
58}
59
61#ifdef CLANG_VENDOR
62 return CLANG_VENDOR;
63#else
64 return "";
65#endif
66}
67
69 std::string buf;
70 llvm::raw_string_ostream OS(buf);
73 if (.empty() || !Revision.empty()) {
74 OS << '(';
75 if (.empty())
77 if (!Revision.empty()) {
78 if (.empty())
79 OS << ' ';
80 OS << Revision;
81 }
82 OS << ')';
83 }
84
86 if (!LLVMRev.empty() && LLVMRev != Revision) {
87 OS << " (";
89 if (!LLVMRepo.empty())
90 OS << LLVMRepo << ' ';
91 OS << LLVMRev << ')';
92 }
93 return buf;
94}
95
98}
99
101 std::string buf;
102 llvm::raw_string_ostream OS(buf);
103 OS << getClangVendor() << ToolName << " version " CLANG_VERSION_STRING;
104
106 if (!repo.empty()) {
107 OS << " " << repo;
108 }
109
110 return buf;
111}
112
114
115
116 std::string buf;
117 llvm::raw_string_ostream OS(buf);
118 OS << getClangVendor() << "Clang " CLANG_VERSION_STRING;
119
121 if (!repo.empty()) {
122 OS << " " << repo;
123 }
124
125 return buf;
126}
127
128}
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
Defines version macros and version-related utility functions for Clang.
The JSON file list parser is used to communicate input to InstallAPI.
std::string getLLVMRevision()
Retrieves the repository revision number (or identifier) from which LLVM was built.
std::string getClangVendor()
Retrieves the Clang vendor tag.
std::string getClangToolFullVersion(llvm::StringRef ToolName)
Like getClangFullVersion(), but with a custom tool name.
std::string getClangRevision()
Retrieves the repository revision number (or identifier) from which this Clang was built.
std::string getClangRepositoryPath()
Retrieves the repository path (e.g., Subversion path) that identifies the particular Clang branch,...
std::string getLLVMRepositoryPath()
Retrieves the repository path from which LLVM was built.
std::string getClangFullRepositoryVersion()
Retrieves the full repository version that is an amalgamation of the information in getClangRepositor...
std::string getClangFullCPPVersion()
Retrieves a string representing the complete clang version suitable for use in the CPP VERSION macro,...
std::string getClangFullVersion()
Retrieves a string representing the complete clang version, which includes the clang version number,...