--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools/imaker/buildrom_plugins/s60ibymacros.pm Wed Jun 30 11:35:58 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