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> 15 using namespace std; 16 17 namespace clang { 18 19 const char *getClangSubversionPath() { 20 static const char *Path = 0; 21 if (Path) 22 return Path; 23 24 static char URL[] = "$URL$"; 25 char *End = strstr(URL, "/lib/Basic"); 26 if (End) 27 *End = 0; 28 29 char *Begin = strstr(URL, "cfe/"); 30 if (Begin) { 31 Path = Begin + 4; 32 return Path; 33 } 34 35 Path = URL; 36 return Path; 37 } 38 39 40 unsigned getClangSubversionRevision() { 41 #ifndef SVN_REVISION 42 // Subversion was not available at build time? 43 return 0; 44 #else 45 return strtol(SVN_REVISION, 0, 10); 46 #endif 47 } 48 49 } // end namespace clang 50