taskswitcher/testapplications/generator/generator/devide_sis.pl
author Jaakko Haukipuro (Nokia-MS/Oulu) <Jaakko.Haukipuro@nokia.com>
Thu, 16 Sep 2010 12:11:40 +0100
changeset 117 c63ee96dbe5f
permissions -rw-r--r--
Missing activityfw and taskswitcher components - fix for Bug 3670

use strict;

my $pkgbase = ";Language - standard language definitions
\&EN,FI,ZH,JA

; standard SIS file header
\#{\"HelloWorldBasicREPLACE1\", \"HelloWorldBasicREPLACE1\", \"HelloWorldBasicREPLACE1\", \"HelloWorldBasicREPLACE1\"},(REPLACEUID),1,0,0

;Localised Vendor name
\%{\"Vendor-EN\", \"Vendor-FI\", \"Vendor-ZH\", \"Vendor-JA\"}

;Unique Vendor name
:\"Vendor\"

;Supports Series 60 v 3.0
[0x101F7961], 0, 0, 0, {\"S60ProductID\", \"S60ProductID\", \"S60ProductID\", \"S60ProductID\"}

";

my $pkgfiles = ";Files
\"\\epoc32\\release\\armv5\\urel\\HelloWorldBasicREPLACE2.exe\" -\"!:\\sys\\bin\\HelloWorldBasicREPLACE2.exe\"

\"\\epoc32\\data\\z\\resource\\apps\\HelloWorldBasicREPLACE2.rsc\" -\"!:\\resource\\apps\\HelloWorldBasicREPLACE2.rsc\"
\"\\epoc32\\data\\z\\resource\\apps\\HelloWorldBasicREPLACE2.r09\" -\"!:\\resource\\apps\\HelloWorldBasicREPLACE2.r09\"
\"\\epoc32\\data\\z\\resource\\apps\\HelloWorldBasicREPLACE2.r31\" -\"!:\\resource\\apps\\HelloWorldBasicREPLACE2.r31\"
\"\\epoc32\\data\\z\\resource\\apps\\HelloWorldBasicREPLACE2.r32\" -\"!:\\resource\\apps\\HelloWorldBasicREPLACE2.r32\"

\"\\epoc32\\data\\z\\private\\10003a3f\\import\\apps\\HelloWorldBasicREPLACE2_reg.rsc\" -\"!:\\private\\10003a3f\\import\\apps\\HelloWorldBasicREPLACE2_reg.rsc\"
\"\\epoc32\\data\\z\\private\\10003a3f\\import\\apps\\HelloWorldBasicREPLACE2_reg.r09\" -\"!:\\private\\10003a3f\\import\\apps\\HelloWorldBasicREPLACE2_reg.r09\"
\"\\epoc32\\data\\z\\private\\10003a3f\\import\\apps\\HelloWorldBasicREPLACE2_reg.r31\" -\"!:\\private\\10003a3f\\import\\apps\\HelloWorldBasicREPLACE2_reg.r31\"
\"\\epoc32\\data\\z\\private\\10003a3f\\import\\apps\\HelloWorldBasicREPLACE2_reg.r32\" -\"!:\\private\\10003a3f\\import\\apps\\HelloWorldBasicREPLACE2_reg.r32\"
\"\\epoc32\\data\\z\\resource\\apps\\helloworldbasicREPLACE2_aif.mif\" -\"!:\\resource\\apps\\helloworldbasicREPLACE2_aif.mif\"
;end
";

my $appnum = shift;
my $baseuid = 0xA000018A;
my $defaultappforpkg = 5;
my $filenum = $appnum/$defaultappforpkg;
if ($appnum%$defaultappforpkg > 0) 
    {
    $filenum++;
    }

generate();

sub generate()
    {
    my $i = 0;
    for ( $i=1; $i<=$filenum; $i++ ) 
        {
        my $filepart =".\\sis\\helloworldbasicPart".$i."\.pkg";
        open FW, ">$filepart" or die "Couldn't open $filepart to write";
        binmode FW;
        print FW replaceheader($i);
        my $fb = filesbegin($i);
        my $fe = filesend($i);
        for(my $f=$fb; $f<=$fe; $f++)
            {
            print FW replacefiles($f);
            }        
        close FW;    
        }    
    }
    
sub filesend()
    {
    my $fileiter = shift;
    my $fend = $fileiter*$defaultappforpkg;
    if($fend>$appnum)
        {
        $fend = $appnum;
        }
    return $fend;
    }
    
sub filesbegin()
    {
    my $fileiter = shift;
    my $fbegin = ($fileiter-1)*$defaultappforpkg+1;
    return $fbegin;
    }    
    
sub replaceheader()
    {
    my $it = shift;
    my $tempbuf = $pkgbase;
    $tempbuf =~ s/REPLACE1/$it/sg;
    $it = ($it-1)*$defaultappforpkg + 1;
    my $tempuid = uid($it);
    $tempbuf =~ s/REPLACEUID/$tempuid/sg;
    return $tempbuf;
    }
    
sub replacefiles()
    {
    my $it = shift;
    my $tempbuf = $pkgfiles;
    $tempbuf =~ s/REPLACE2/$it/sg;
    return $tempbuf;
    }    
    
sub uid
    {
    my $iter = shift;
    my $uuid = $baseuid + $iter -1;
    my $hu = sprintf '%#X',  $uuid;
    $hu =~s/X/x/;
    return $hu;
    }