Home | History | Annotate | Download | only in scripts
      1 #!/usr/bin/perl
      2 
      3 sub usage()
      4 {
      5   print "Usage: generate-vers.pl /path/toproject.pbxproj";
      6   exit(0);
      7 }
      8 
      9 (scalar @ARGV == 1) or usage();
     10 
     11 open $pbxproj, $ARGV[0] or die "Couldn't open ".$ARGV[0];
     12 
     13 $lldb_version = None;
     14 $lldb_train = None;
     15 $lldb_revision = None;
     16 $lldb_version_string = None;
     17 
     18 $product_name = "lldb";
     19 
     20 while ($line = <$pbxproj>)
     21 {
     22   chomp ($line);
     23   
     24   if ($lldb_version == None &&
     25       $line =~ /CURRENT_PROJECT_VERSION = ([0-9]+).([0-9]+).([0-9]+)(.[0-9])?/)
     26   {
     27     $lldb_version = $1;
     28     $lldb_train = $2;
     29     $lldb_revision = $3;
     30     $lldb_patchlevel = $4;
     31 
     32     if ($lldb_patchlevel != None)
     33     {
     34       $lldb_version_string = $lldb_version.".".$lldb_train.".".$lldb_revision.".".$lldb_patchlevel;
     35     }
     36     else
     37     {
     38       $lldb_version_string = $lldb_version.".".$lldb_train.".".$lldb_revision;
     39     } 
     40   }
     41 }
     42 
     43 if (!$product_name || !$lldb_version_string)
     44 {
     45   print "Couldn't get needed information from the .pbxproj";
     46   exit(-1);
     47 }
     48 
     49 $uppercase_name = uc $product_name;
     50 $lowercase_name = lc $product_name;
     51 
     52 close $pbxproj;
     53 
     54 $file_string = " const unsigned char liblldb_coreVersionString[] __attribute__ ((used)) = \"@(#)PROGRAM:".$uppercase_name."  PROJECT:".$lowercase_name."-".$lldb_version_string."\" \"\\n\"; const double liblldb_coreVersionNumber __attribute__ ((used)) = (double)".$lldb_version.".".$lldb_train.";\n";
     55 
     56 print $file_string;
     57