00001 #include "Version.h" 00002 #include <string> 00003 #include <sstream> 00004 #include <cstring> 00005 00006 using namespace std; 00007 00008 namespace Sct { 00009 00010 //Tag from CVS 00011 #define TAG "$Name: SctRodDaq_2_1 $" 00012 00013 //Build information 00014 const char* BuildSystem = "Linux pcdk 2.4.18-27.7.cb2 #6 Mon Apr 14 10:50:39 BST 2003 i686 unknown"; 00015 const char* BuildHost = "pcdk.hep.phy.cam.ac.uk"; 00016 const char* BuildDate = "19:01:22 15 Dec 2003"; 00017 const char* CmtConfig = "i686-rh73-gcc32 "; 00018 const char* OnlineVersion = "online-00-19-01 "; 00019 const char* RootVersion = "3.05/07"; 00020 const char* GccVersion = "3.2.3"; 00021 const char* RodDaqVersion = "SctRodDaq_2_1"; 00022 const char* DataFlowVersion = "DF-00-05-00"; 00023 00024 const char* getVersionString() { 00025 static char* str = 0; 00026 if (!str) { 00027 if (strlen(TAG) > 10) { 00028 str = new char[strlen(TAG)-6]; 00029 strncpy(str, &TAG[7], strlen(TAG)-9); 00030 str[strlen(TAG)-9] = '\0'; 00031 } else { 00032 str = new char[20]; 00033 strcpy(str, "SctRodDaq_0_00_Exp"); 00034 } 00035 } 00036 return str; 00037 } 00038 00039 const char* getVersionModifier() { 00040 return &strrchr(VersionString, '_')[1]; 00041 } 00042 00043 unsigned int getMajorVersion() { 00044 return (unsigned int)floor(Version); 00045 } 00046 00047 unsigned int getMinorVersion() { 00048 return (unsigned int) floor( (Version - MajorVersion) * 101); 00049 } 00050 00051 double getVersion() { 00052 char str [strlen(VersionString) - 10]; 00053 strcpy(str, &VersionString[10]); 00054 str[1] = '.'; 00055 return atof(str); 00056 } 00057 00058 const char* VersionString = getVersionString(); 00059 const char* VersionModifier = getVersionModifier(); 00060 const double Version = getVersion(); 00061 const unsigned int MajorVersion = getMajorVersion(); 00062 const unsigned int MinorVersion = getMinorVersion(); 00063 00064 }