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

print $file_string;
