buildcounter.pl 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use Config;
  4. if ($#ARGV ne 2 and $#ARGV ne 3) {
  5. die "Usage: $0 AppName IncludeRoot SourceRoot [include prefix]";
  6. }
  7. my ($APPNAME,$INCDIR, $SRCDIR, $PREFIX) = @ARGV;
  8. $PREFIX or $PREFIX = '';
  9. my $APPNAME_U = uc $APPNAME;
  10. my @DATE = localtime;
  11. my $DATE = sprintf "%4d%02d%02d%02d%02d%02d", $DATE[5]+1900, $DATE[4]+1, $DATE[3], $DATE[2], $DATE[1], $DATE[0];
  12. my $OSTAG = 'Unknown';
  13. if ($Config{osname} eq 'linux') {
  14. $OSTAG = 'Linux';
  15. } elsif ($Config{osname} eq 'darwin') {
  16. $OSTAG = 'MacOSX';
  17. } elsif ($Config{osname} eq 'MSWin32') {
  18. $OSTAG = 'Win32';
  19. }
  20. my $header = qq{//////////////////////////////////////////////////
  21. // File autogenerated by buildcounter
  22. // Do not hand edit! (preferably)
  23. //////////////////////////////////////////////////
  24. #ifndef BUILDID_${APPNAME_U}_H
  25. #define BUILDID_${APPNAME_U}_H
  26. const char* GetBuildID_${APPNAME}();
  27. #endif //BUILDID_${APPNAME_U}_H
  28. };
  29. my $source = qq{//////////////////////////////////////////////////
  30. // File autogenerated by buildcounter
  31. // Do not hand edit! (preferably)
  32. //////////////////////////////////////////////////
  33. #include "${PREFIX}BuildID_${APPNAME}.h"
  34. static char gsBuildID[16] = "${DATE}";
  35. const char* GetBuildID_${APPNAME}()
  36. {
  37. return gsBuildID;
  38. }
  39. };
  40. $header =~ s/\n/\r\n/gms;
  41. my $full = $INCDIR.'/'.$PREFIX.'BuildID_'.$APPNAME.'.h';
  42. print 'Writing '.$full."\n";
  43. open DAFILE, ">$full" or die("Unable to open $full");
  44. print DAFILE $header;
  45. close DAFILE;
  46. $full = $SRCDIR.'/BuildID_'.$APPNAME.'_'.$OSTAG.'.cpp';
  47. print 'Writing '.$full."\n";
  48. open DAFILE, ">$full" or die("Unable to open $full");
  49. print DAFILE $source;
  50. close DAFILE;