ivversion.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #ifndef IVVERSION_H
  2. #define IVVERSION_H
  3. #define VERSION "1.1.0-develop"
  4. #include <iostream>
  5. #include <stdio.h>
  6. #include <fstream>
  7. #include <string.h>
  8. #include <QFile>
  9. std::string getgitversion()
  10. {
  11. std::string strrtn;
  12. bool bfileok = false;
  13. char strpath[256];
  14. char strtem[256];
  15. char strbase[256];
  16. snprintf(strbase,256,"./.git/refs/heads/master");
  17. snprintf(strtem,256,"./.");
  18. int i;
  19. for(i=0;i<5;i++)
  20. {
  21. strncpy(strpath,strtem,256);
  22. int j;
  23. for(j=0;j<i;j++)strncat(strpath,strtem,256);
  24. strncat(strpath,strbase,256);
  25. std::ifstream f(strpath);
  26. if(f.good())
  27. {
  28. char strdata[256];
  29. f.read(strdata,256);
  30. if(f.gcount()>0)strrtn.append(strdata,f.gcount());
  31. // std::cout<<"file ok"<<"size is "<<f.gcount()<<std::endl;
  32. bfileok = true;
  33. f.close();
  34. break;
  35. }
  36. else
  37. {
  38. // std::cout<<" not ok"<<std::endl;
  39. }
  40. }
  41. if(bfileok == false)
  42. {
  43. strrtn = VERSION;
  44. }
  45. return strrtn;
  46. }
  47. //#define showversion(modulename) do{std::cout<<"ADC IV Version:"<<VERSION<<" | Module name: "<<modulename<<" | Build Time: "<<__DATE__<<" "<<__TIME__<<std::endl;}while(0);
  48. #define showversion(modulename) do{std::cout<<"ADC IV Version:"<<getgitversion()<<" | Module name: "<<modulename<<" | Build Time: "<<__DATE__<<" "<<__TIME__<<std::endl;}while(0);
  49. #endif