Version.cpp revision 199482
1//===- Version.cpp - Clang Version Number -----------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file defines several version-related utility functions for Clang.
11//
12//===----------------------------------------------------------------------===//
13#include <cstring>
14#include <cstdlib>
15using namespace std;
16
17namespace clang {
18
19const char *getClangSubversionPath() {
20  static const char *Path = 0;
21  if (Path)
22    return Path;
23
24  static char URL[] = "$URL: http://llvm.org/svn/llvm-project/cfe/trunk/lib/Basic/Version.cpp $";
25  char *End = strstr(URL, "/lib/Basic");
26  if (End)
27    *End = 0;
28
29  End = strstr(URL, "/clang/tools/clang");
30  if (End)
31    *End = 0;
32
33  char *Begin = strstr(URL, "cfe/");
34  if (Begin) {
35    Path = Begin + 4;
36    return Path;
37  }
38
39  Path = URL;
40  return Path;
41}
42
43
44unsigned getClangSubversionRevision() {
45#ifndef SVN_REVISION
46  // Subversion was not available at build time?
47  return 0;
48#else
49  return strtol(SVN_REVISION, 0, 10);
50#endif
51}
52
53} // end namespace clang
54