common/tools/populateziptemplate.pl
author Simon Howkins <simonh@symbian.org>
Wed, 16 Sep 2009 10:27:29 +0100
changeset 456 1ba3c86ebec0
parent 455 bb24766fdbdc
child 461 874d24067366
permissions -rw-r--r--
Bug 350 RnD binary zips missing all content outside epoc32 tree Removed confusing system of *_includefiles.txt appearing in the root of the build drive Also improved generation of release zips and release_metadata.xml to reduce overheads of copying and tweaking for release
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
108
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
     1
#!perl -w
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
     2
# Copyright (c) 2009 Symbian Foundation Ltd
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
     3
# This component and the accompanying materials are made available
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
     4
# under the terms of the License "Eclipse Public License v1.0"
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
     5
# which accompanies this distribution, and is available
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
     6
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
     7
#
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
     8
# Initial Contributors:
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
     9
# Symbian Foundation Ltd - initial contribution.
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
    10
# 
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
    11
# Contributors:
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
    12
#
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
    13
# Description:
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
    14
# Populates the template for packaging src and binaries in the build
d33d43677cdf Added license header
Simon Howkins <simonh@symbian.org>
parents: 102
diff changeset
    15
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    16
use strict;
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    17
89
a8aa5d600806 Copy Text::CSV module into source and change to use it, as we can't rely on it appearing in the Perl library when Perl 5.6.1 is installed.
Simon Howkins <simonh@symbian.org>
parents: 88
diff changeset
    18
use FindBin;
a8aa5d600806 Copy Text::CSV module into source and change to use it, as we can't rely on it appearing in the Perl library when Perl 5.6.1 is installed.
Simon Howkins <simonh@symbian.org>
parents: 88
diff changeset
    19
use lib "$FindBin::Bin/lib";
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    20
use Text::CSV;
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    21
require XML::Simple;
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    22
84
fcf94a72b33e Improved zip template generation script, to take a third argument for the required location of the output file.
Simon Howkins <simonh@symbian.org>
parents: 76
diff changeset
    23
# Raw inputs come in as parameters to the script
fcf94a72b33e Improved zip template generation script, to take a third argument for the required location of the output file.
Simon Howkins <simonh@symbian.org>
parents: 76
diff changeset
    24
# TODO: Use a proper option parsing module
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    25
my $sourcesCSV = shift or die "First arg must be source csv file";
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    26
my $template = shift or die "Second arg must be template file";
84
fcf94a72b33e Improved zip template generation script, to take a third argument for the required location of the output file.
Simon Howkins <simonh@symbian.org>
parents: 76
diff changeset
    27
my $ftl = shift or die "Third arg must be output file";
247
cfde8b1784f7 Simplified the locations of some generated files, so they are created where they need to be rather than created on one place and moved to another.
Simon Howkins <simonh@symbian.org>
parents: 111
diff changeset
    28
my $rndExcludes = shift or die "Fourth arg must be rnd-excludes file";
313
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    29
my $nosource = shift;
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    30
if(defined $nosource && $nosource !~ m/--nosource/i)
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    31
{
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    32
  die "fifth argument can only be \'--nosource\'";
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    33
}
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    34
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    35
# Load CSV
380
d4dac57985d9 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 372
diff changeset
    36
open my $csvText, "<", $sourcesCSV or die "Unable to open sources.csv from $sourcesCSV";
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    37
my $csv = Text::CSV->new();
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    38
my @keys;
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    39
my @packages;
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    40
while (my $line = <$csvText>)
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    41
{
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    42
	chomp $line;
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    43
	next unless $line;
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    44
	unless ($csv->parse($line))
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    45
	{
89
a8aa5d600806 Copy Text::CSV module into source and change to use it, as we can't rely on it appearing in the Perl library when Perl 5.6.1 is installed.
Simon Howkins <simonh@symbian.org>
parents: 88
diff changeset
    46
		my $err = $csv->error_input();
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    47
		die "Failed to parse line '$line': $err";
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    48
	}
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    49
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    50
	if (! @keys)
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    51
	{
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    52
		# First line - note the column names
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    53
		@keys =  $csv->fields();
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    54
	}
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    55
	else
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    56
	{
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    57
		# Already got the keys, so get the data
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    58
		my %package;
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    59
		# Read into a hash slice
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    60
		@package{@keys} = $csv->fields();
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    61
		push @packages, \%package;
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    62
	}
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    63
}
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    64
close $csvText;
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    65
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    66
# This controls how the XML parsing decides what should be tags and what should be attributes
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    67
# It's been worked out mostly by trial and error :-(
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    68
my $keyAttr = { config => "name", name => "set"};
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    69
# Load template
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    70
my $xml = XML::Simple->new();
372
ea854a4b723d Bug 289 Issue in populatezip.pl when doing Platform build in step preprocess-zip-config
Simon Howkins <simonh@symbian.org>
parents: 313
diff changeset
    71
my $zipConfig = $xml->XMLin($template, keyattr => $keyAttr);
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    72
my @allRndFiles;
388
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
    73
my $miscCount = 0;
380
d4dac57985d9 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 372
diff changeset
    74
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    75
# For each package in CSV...
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    76
foreach my $package (@packages)
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    77
{
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    78
	warn "Warning: Package $package->{dst} does not appear on the local system\n" unless -d $package->{dst};
76
a115d49b621f Include epl/sfl category in zipfile name
Shabe Razvi <shaber@symbian.org>
parents: 73
diff changeset
    79
	$package->{dst} =~ s{^/}{}g;
102
c2478fad90aa Fix populateziptemplate.pl to work with new repo structure
Shabe Razvi <shaber@symbian.org>
parents: 94
diff changeset
    80
	if ($package->{source} =~ m{/(sfl|oss)/(MCL|FCL)/sf/([^/]+)/([^/]+)})
313
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    81
	{
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    82
		if(!defined $nosource)
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    83
  	{
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    84
  		push @{$zipConfig->{config}->{config}->{src}->{config}->{$1}->{config}},
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    85
  		{
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    86
  			set =>
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    87
  			[
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    88
  				{
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    89
  					name => "name",
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    90
  					value=> "src_$1_$3_$4",
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    91
  				},
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    92
  				{
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    93
  					name => "include",
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    94
  					value => "$package->{dst}/**",
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    95
  				},
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    96
  			]
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    97
  		};
52d855dfda13 Changed 'publish' to 'sf-publish' to only publish the zips, not all logs. Changed behaviour so that 'sf.spec.package.src.enable'=false stops the source repos from getting packaged, but not the RnD ones (which are extracted again in platform builds)
MattD <mattd@symbian.org>
parents: 261
diff changeset
    98
  	}	
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    99
	}
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   100
	elsif ($package->{source} =~ m{/rnd/([^/]+)/([^/]+)})
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   101
	{
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   102
		# RnD repository
456
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   103
		my $licenseType = $1;
455
bb24766fdbdc Bug 349 R&D kit zip file naming convention not followed
Simon Howkins <simonh@symbian.org>
parents: 388
diff changeset
   104
		my $name="bin_$1_$2";
456
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   105
		my $postbuildName = "binaries_$2";
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   106
		my $config = "rnd";
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   107
		if ($licenseType eq "internal")
455
bb24766fdbdc Bug 349 R&D kit zip file naming convention not followed
Simon Howkins <simonh@symbian.org>
parents: 388
diff changeset
   108
		{
456
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   109
			$name = "binaries_$2_prebuild";
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   110
			$config = "rnd-internal";
455
bb24766fdbdc Bug 349 R&D kit zip file naming convention not followed
Simon Howkins <simonh@symbian.org>
parents: 388
diff changeset
   111
		}
261
a0e85954c23c Fix packaging issues. Released zips now delivered in zips\release folder.
Shabe Razvi <shaber@symbian.org>
parents: 247
diff changeset
   112
		
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   113
		# Create a zip object
456
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   114
		push @{$zipConfig->{config}->{config}->{$config}->{config}},
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   115
		{
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   116
			set =>
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   117
			[
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   118
				{
88
28463bb10fde Package RnD binaries from rnd root location to reduce size of include list
Shabe Razvi <shaber@symbian.org>
parents: 84
diff changeset
   119
					name => "root.dir",
28463bb10fde Package RnD binaries from rnd root location to reduce size of include list
Shabe Razvi <shaber@symbian.org>
parents: 84
diff changeset
   120
					value=> "\${build.drive}/$package->{dst}",
28463bb10fde Package RnD binaries from rnd root location to reduce size of include list
Shabe Razvi <shaber@symbian.org>
parents: 84
diff changeset
   121
				},
28463bb10fde Package RnD binaries from rnd root location to reduce size of include list
Shabe Razvi <shaber@symbian.org>
parents: 84
diff changeset
   122
				{
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   123
					name => "name",
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   124
					value=> "$name",
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   125
				},
88
28463bb10fde Package RnD binaries from rnd root location to reduce size of include list
Shabe Razvi <shaber@symbian.org>
parents: 84
diff changeset
   126
				{
28463bb10fde Package RnD binaries from rnd root location to reduce size of include list
Shabe Razvi <shaber@symbian.org>
parents: 84
diff changeset
   127
					name => "include",
28463bb10fde Package RnD binaries from rnd root location to reduce size of include list
Shabe Razvi <shaber@symbian.org>
parents: 84
diff changeset
   128
					value=> "/**",
28463bb10fde Package RnD binaries from rnd root location to reduce size of include list
Shabe Razvi <shaber@symbian.org>
parents: 84
diff changeset
   129
				},
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   130
			]
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   131
		};
90
5b27412eeaf0 Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents: 89
diff changeset
   132
		# Enumerate all the files on the local disk that are in this repository
5b27412eeaf0 Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents: 89
diff changeset
   133
		(my $dosCompatibleDst = $package->{dst}) =~ s{/}{\\}g;
5b27412eeaf0 Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents: 89
diff changeset
   134
		my @files = `dir /b/s/a-d $dosCompatibleDst 2> nul:`;
5b27412eeaf0 Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents: 89
diff changeset
   135
		next unless @files;
456
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   136
		# Add the files to the global list of items to be excluded in the binary zips
90
5b27412eeaf0 Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents: 89
diff changeset
   137
		@files = grep {
456
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   138
			chomp;
90
5b27412eeaf0 Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents: 89
diff changeset
   139
			s{\\}{/}g;
5b27412eeaf0 Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents: 89
diff changeset
   140
			s!^[A-Z]:/$package->{dst}/!!i;
5b27412eeaf0 Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents: 89
diff changeset
   141
			m{^epoc32/}i;
5b27412eeaf0 Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents: 89
diff changeset
   142
		} @files;
5b27412eeaf0 Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents: 89
diff changeset
   143
		push @allRndFiles, @files;
456
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   144
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   145
		if ($licenseType eq "internal")
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   146
		{
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   147
			# Add a zip object to zip this package from the epoc tree in the postbuild phase
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   148
			push @{$zipConfig->{config}->{config}->{"rnd-postbuild"}->{config}},
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   149
			{
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   150
				name => $postbuildName,
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   151
				set =>
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   152
				[
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   153
					{
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   154
						name => "name",
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   155
						value=> $postbuildName,
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   156
					},
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   157
					# Turn the array of files into an array of inclusion hashes
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   158
					(map { {name => "include", value => $_ } } @files),
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   159
				]
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   160
			};
1ba3c86ebec0 Bug 350 RnD binary zips missing all content outside epoc32 tree
Simon Howkins <simonh@symbian.org>
parents: 455
diff changeset
   161
		}
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   162
	}
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   163
	else
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   164
	{
388
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   165
		(my $dest2 = $package->{dst}) =~ s{[\\/]}{_slash_}g;
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   166
		push @{$zipConfig->{config}->{config}->{src}->{config}->{misc}->{config}},
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   167
		{
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   168
			set =>
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   169
			[
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   170
				{
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   171
					name => "name",
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   172
					value=> "src_misc_$dest2"."_$miscCount",
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   173
				},
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   174
				{
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   175
					name => "include",
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   176
					value => "$package->{dst}/**",
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   177
				},
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   178
			]
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   179
		};
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   180
		$miscCount++;
2ab990de5a23 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 380
diff changeset
   181
		warn "Warning: Cannot determine license for '$package->{source}' - it will be packaged as 'src_misc_$dest2"."_$miscCount'\n";
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   182
	}
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   183
}
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   184
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   185
# Turn the RnD source inclusion lists into a binary exclusion list
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   186
my @excludes = map { {name => "exclude", value => "$_"} } @allRndFiles;
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   187
push @{$zipConfig->{config}->{config}->{bin}->{config}->{set}}, @excludes;
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   188
372
ea854a4b723d Bug 289 Issue in populatezip.pl when doing Platform build in step preprocess-zip-config
Simon Howkins <simonh@symbian.org>
parents: 313
diff changeset
   189
$xml->XMLout($zipConfig, OutputFile => $ftl, XMLDecl => 1, RootName => 'build', keyattr => $keyAttr);
73
b8d6af733d6d Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   190
111
5b0bc2f89660 Add postbuild RnD packaging. Add .whatlog to os tools build.
Shabe Razvi <shaber@symbian.org>
parents: 108
diff changeset
   191
# Output all rnd files into exclude list for later
247
cfde8b1784f7 Simplified the locations of some generated files, so they are created where they need to be rather than created on one place and moved to another.
Simon Howkins <simonh@symbian.org>
parents: 111
diff changeset
   192
open my $fh, ">", $rndExcludes or die "Cannot write exlude file!";
cfde8b1784f7 Simplified the locations of some generated files, so they are created where they need to be rather than created on one place and moved to another.
Simon Howkins <simonh@symbian.org>
parents: 111
diff changeset
   193
print $fh @allRndFiles;
cfde8b1784f7 Simplified the locations of some generated files, so they are created where they need to be rather than created on one place and moved to another.
Simon Howkins <simonh@symbian.org>
parents: 111
diff changeset
   194
close $fh;
380
d4dac57985d9 Bug 299 populateziptemplate.pl aborts if it cannot determine the license for a source component
Simon Howkins <simonh@symbian.org>
parents: 372
diff changeset
   195