Shorten the output of `clang-format --version`, include revision number.
Before: $ clang-format --version LLVM (http://llvm.org/): LLVM version 3.5svn Optimized build with assertions. Built Jan 3 2014 (14:28:46). Default target: x86_64-apple-darwin13.0.0 Host CPU: core-avx-i Now: $ bin/clang-format --version clang-format version 3.5 (198452) llvm-svn: 198694
This commit is contained in:
parent
e0756452a3
commit
b00d66e6ac
|
@ -70,6 +70,9 @@ namespace clang {
|
||||||
/// and the vendor tag.
|
/// and the vendor tag.
|
||||||
std::string getClangFullVersion();
|
std::string getClangFullVersion();
|
||||||
|
|
||||||
|
/// \brief Like getClangFullVersion(), but with a custom tool name.
|
||||||
|
std::string getClangToolFullVersion(llvm::StringRef ToolName);
|
||||||
|
|
||||||
/// \brief Retrieves a string representing the complete clang version suitable
|
/// \brief Retrieves a string representing the complete clang version suitable
|
||||||
/// for use in the CPP __VERSION__ macro, which includes the clang version
|
/// for use in the CPP __VERSION__ macro, which includes the clang version
|
||||||
/// number, the repository version, and the vendor tag.
|
/// number, the repository version, and the vendor tag.
|
||||||
|
|
|
@ -116,12 +116,16 @@ std::string getClangFullRepositoryVersion() {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string getClangFullVersion() {
|
std::string getClangFullVersion() {
|
||||||
|
return getClangToolFullVersion("clang");
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string getClangToolFullVersion(StringRef ToolName) {
|
||||||
std::string buf;
|
std::string buf;
|
||||||
llvm::raw_string_ostream OS(buf);
|
llvm::raw_string_ostream OS(buf);
|
||||||
#ifdef CLANG_VENDOR
|
#ifdef CLANG_VENDOR
|
||||||
OS << CLANG_VENDOR;
|
OS << CLANG_VENDOR;
|
||||||
#endif
|
#endif
|
||||||
OS << "clang version " CLANG_VERSION_STRING " "
|
OS << ToolName << " version " CLANG_VERSION_STRING " "
|
||||||
<< getClangFullRepositoryVersion();
|
<< getClangFullRepositoryVersion();
|
||||||
|
|
||||||
// If vendor supplied, include the base LLVM version as well.
|
// If vendor supplied, include the base LLVM version as well.
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include "clang/Basic/DiagnosticOptions.h"
|
#include "clang/Basic/DiagnosticOptions.h"
|
||||||
#include "clang/Basic/FileManager.h"
|
#include "clang/Basic/FileManager.h"
|
||||||
#include "clang/Basic/SourceManager.h"
|
#include "clang/Basic/SourceManager.h"
|
||||||
|
#include "clang/Basic/Version.h"
|
||||||
#include "clang/Format/Format.h"
|
#include "clang/Format/Format.h"
|
||||||
#include "clang/Lex/Lexer.h"
|
#include "clang/Lex/Lexer.h"
|
||||||
#include "clang/Rewrite/Core/Rewriter.h"
|
#include "clang/Rewrite/Core/Rewriter.h"
|
||||||
|
@ -255,6 +256,11 @@ static bool format(StringRef FileName) {
|
||||||
} // namespace format
|
} // namespace format
|
||||||
} // namespace clang
|
} // namespace clang
|
||||||
|
|
||||||
|
static void PrintVersion() {
|
||||||
|
raw_ostream &OS = outs();
|
||||||
|
OS << clang::getClangToolFullVersion("clang-format") << '\n';
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, const char **argv) {
|
int main(int argc, const char **argv) {
|
||||||
llvm::sys::PrintStackTraceOnErrorSignal();
|
llvm::sys::PrintStackTraceOnErrorSignal();
|
||||||
|
|
||||||
|
@ -268,6 +274,7 @@ int main(int argc, const char **argv) {
|
||||||
I->second->setHiddenFlag(cl::ReallyHidden);
|
I->second->setHiddenFlag(cl::ReallyHidden);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cl::SetVersionPrinter(PrintVersion);
|
||||||
cl::ParseCommandLineOptions(
|
cl::ParseCommandLineOptions(
|
||||||
argc, argv,
|
argc, argv,
|
||||||
"A tool to format C/C++/Obj-C code.\n\n"
|
"A tool to format C/C++/Obj-C code.\n\n"
|
||||||
|
|
Loading…
Reference in New Issue