imgtools/imaker/buildrom_plugins/s60ibymacros.pm
changeset 620 ad8ffc8e1982
parent 595 997c19261166
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools/imaker/buildrom_plugins/s60ibymacros.pm	Mon Jul 26 11:04:29 2010 +0800
@@ -0,0 +1,123 @@
+# ============================================================================
+#  Name        : s60ibymacros.pm
+#  Part of     : build_RnD
+#  Description : S60 specific IBY file macro handling
+#  Version     : %version: 1 %
+#
+#  Copyright © 2006 Nokia.  All rights reserved.
+#  This material, including documentation and any related computer
+#  programs, is protected by copyright controlled by Nokia.  All
+#  rights are reserved.  Copying, including reproducing, storing,
+#  adapting or translating, any or all of this material requires the
+#  prior written consent of Nokia.  This material also contains
+#  confidential information which may not be disclosed to others
+#  without the prior written consent of Nokia.
+# ============================================================================
+#
+# 07.08.2006 Juha Ristimäki
+# Initial version.
+#
+
+package s60ibymacros;
+
+BEGIN
+  {
+  use Exporter ();
+  our ( $VERSION, @ISA, @EXPORT );
+  # set the version for version checking
+  $VERSION     = 1.00;
+
+  @ISA         = qw( Exporter );
+  @EXPORT      = qw( &s60ibymacros_info &DoS60IbyModifications );
+  }
+
+my %s60ibymacros_infostruct =
+  (
+  name => "s60ibymacros",
+  invocation => "InvocationPoint1",
+  single => "s60ibymacros::DoS60IbyModifications"
+  );
+
+my @newobydata;
+
+sub s60ibymacros_info
+  {
+  return \%s60ibymacros_infostruct;
+  }
+
+sub DoS60IbyModifications
+  {
+  my $obydata = shift;
+
+  undef @newobydata;
+  foreach $line (@{$obydata})
+    {
+    if ($line =~ /^\s*REM/i)
+      {
+      # Ignore REM statements, to avoid processing "REM __SCALABLE_IMAGE( ... )"
+      push @newobydata, $line;
+      }
+    elsif( ! ( HandleIconMacros($line) || HandleCenrepMacros($line) ) )
+      {
+      push @newobydata, $line;
+      }
+    }
+  @{$obydata} = @newobydata;
+  }
+
+sub HandleCenrepMacros
+  {
+  my $line = shift;
+  if ( $line =~ m/^.*__CENREP_TXT_FILES\(\s*(\S+)\s*,\s*(\S+)\s*,\s*(\S+)\s*\)/i )
+  # __CENREP_TXT_FILES(dataz_, source dir, target dir)
+    {
+    my $sourcepath="$1\\$2";
+    my $targetpath=$3;
+    my $s60extras_export_list_filename = "$sourcepath"."\\s60extras_export_list.txt";
+
+    open(DH, $s60extras_export_list_filename);
+    my @dlist = <DH>;
+    chop @dlist;
+    close(DH);
+
+    my $cenreptxtfile;
+    foreach $cenreptxtfile (@dlist)
+      {
+      if ($cenreptxtfile =~ /^\S+\.txt/)
+        {
+        push @newobydata, "data=$sourcepath\\$cenreptxtfile $targetpath\\$cenreptxtfile\n";
+        }
+      }
+    return 1;
+    }
+  }
+
+sub HandleIconMacros
+  {
+  my $line = shift;
+  if ( $line =~ m/^.*__SCALABLE_IMAGE\(\s*(\S+)\s*,\s*(\S+)\s*,\s*(\S+)\s*,\s*(\S+)\s*\)/i )
+  # __SCALABLE_IMAGE(emulator directory, file rom dir, dataz_, resource rom dir,
+  #                  filename, resource filename)
+    {
+      
+    my $sourcepath="$1\\$2";
+    my $targetpath=$3;
+    my $filename=$4;
+
+    if( -e "$sourcepath\\$filename.mbm" )
+      {
+      push @newobydata, "AUTO-BITMAP=$sourcepath\\$filename.mbm $targetpath\\$filename.mbm\n";
+      }
+    if( -e "$sourcepath\\$filename.mif" )
+      {
+      push @newobydata, "data=$sourcepath\\$filename.mif $targetpath\\$filename.mif\n";
+      }
+    elsif( ! -e "$sourcepath\\$filename.mbm ")
+      {
+      print STDERR "* Invalid image file name: $sourcepath\\$filename.mbm or .mif\n";
+      }
+    return 1;
+    }
+  }
+
+1;  # Return a true value from the file
\ No newline at end of file