generate-vers.pl   [plain text]


#!/usr/bin/perl

sub usage()
{
  print "Usage: generate-vers.pl /path/toproject.pbxproj";
  exit(0);
}

(scalar @ARGV == 1) or usage();

open $pbxproj, $ARGV[0] or die "Couldn't open ".$ARGV[0];

$current_project_version = None;
$product_name = None;

while ($line = <$pbxproj>)
{
  chomp ($line);
  
  if ($current_project_version == None &&
      $line =~ /CURRENT_PROJECT_VERSION = ([0-9]+)/)
  {
    $current_project_version = $1;
  }
  
  if ($product_name == None &&
      $line =~ /productName = ([^;]+)/)
  {
    $product_name = $1;
  }
}

if (!$product_name || !$current_project_version)
{
  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 liblldb_coreVersionString[] __attribute__ ((used)) = \"@(#)PROGRAM:".$uppercase_name."  PROJECT:".$lowercase_name."-".$current_project_version."\" \"\\n\"; const double liblldb_coreVersionNumber __attribute__ ((used)) = (double)".$current_project_version.".;\n";

print $file_string;