| #!/usr/bin/perl | 
 |  | 
 | sub usage() | 
 | { | 
 |   print "Usage: generate-vers.pl /path/toproject.pbxproj program_name"; | 
 |   exit(0); | 
 | } | 
 |  | 
 | (scalar @ARGV == 2) or usage(); | 
 |  | 
 | open $pbxproj, $ARGV[0] or die "Couldn't open ".$ARGV[0]; | 
 |  | 
 | $lldb_version = None; | 
 | $lldb_train = None; | 
 | $lldb_revision = None; | 
 | $lldb_version_string = None; | 
 |  | 
 | $product_name = "lldb"; | 
 |  | 
 | while ($line = <$pbxproj>) | 
 | { | 
 |   chomp ($line); | 
 |    | 
 |   if ($lldb_version == None && | 
 |       $line =~ /CURRENT_PROJECT_VERSION = ([0-9]+).([0-9]+).([0-9]+)(.[0-9])?/) | 
 |   { | 
 |     $lldb_version = $1; | 
 |     $lldb_train = $2; | 
 |     $lldb_revision = $3; | 
 |     $lldb_patchlevel = $4; | 
 |  | 
 |     if ($lldb_patchlevel != None) | 
 |     { | 
 |       $lldb_version_string = $lldb_version.".".$lldb_train.".".$lldb_revision.".".$lldb_patchlevel; | 
 |     } | 
 |     else | 
 |     { | 
 |       $lldb_version_string = $lldb_version.".".$lldb_train.".".$lldb_revision; | 
 |     }  | 
 |   } | 
 | } | 
 |  | 
 | if (!$product_name || !$lldb_version_string) | 
 | { | 
 |   print "Couldn't get needed information from the .pbxproj"; | 
 |   exit(-1); | 
 | } | 
 |  | 
 | $uppercase_name = uc $product_name; | 
 | $lowercase_name = lc $product_name; | 
 |  | 
 | close $pbxproj; | 
 |  | 
 | $file_string = " const unsigned char ".$ARGV[1]."VersionString[] __attribute__ ((used)) = \"@(#)PROGRAM:".$uppercase_name."  PROJECT:".$lowercase_name."-".$lldb_version_string."\" \"\\n\"; const double ".$ARGV[1]."VersionNumber __attribute__ ((used)) = (double)".$lldb_version.".".$lldb_train.";\n"; | 
 |  | 
 | print $file_string; |