author | Matt Davies <mattd@symbian.org> |
Wed, 10 Jun 2009 12:34:20 +0100 | |
changeset 146 | f31749863421 |
parent 111 | 5b0bc2f89660 |
child 247 | cfde8b1784f7 |
permissions | -rw-r--r-- |
108 | 1 |
#!perl -w |
2 |
# Copyright (c) 2009 Symbian Foundation Ltd |
|
3 |
# This component and the accompanying materials are made available |
|
4 |
# under the terms of the License "Eclipse Public License v1.0" |
|
5 |
# which accompanies this distribution, and is available |
|
6 |
# at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 |
# |
|
8 |
# Initial Contributors: |
|
9 |
# Symbian Foundation Ltd - initial contribution. |
|
10 |
# |
|
11 |
# Contributors: |
|
12 |
# |
|
13 |
# Description: |
|
14 |
# Populates the template for packaging src and binaries in the build |
|
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"; |
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
|
28 |
shift and die "No more than three arguments please"; |
73
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
29 |
|
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
30 |
# Load CSV |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
31 |
open my $csvText, "<", $sourcesCSV or die; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
32 |
my $csv = Text::CSV->new(); |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
33 |
my @keys; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
34 |
my @packages; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
35 |
while (my $line = <$csvText>) |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
36 |
{ |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
37 |
chomp $line; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
38 |
next unless $line; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
39 |
unless ($csv->parse($line)) |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
40 |
{ |
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
|
41 |
my $err = $csv->error_input(); |
73
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
42 |
die "Failed to parse line '$line': $err"; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
43 |
} |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
44 |
|
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
45 |
if (! @keys) |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
46 |
{ |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
47 |
# First line - note the column names |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
48 |
@keys = $csv->fields(); |
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 |
else |
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 |
# Already got the keys, so get the data |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
53 |
my %package; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
54 |
# Read into a hash slice |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
55 |
@package{@keys} = $csv->fields(); |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
56 |
push @packages, \%package; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
57 |
} |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
58 |
} |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
59 |
close $csvText; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
60 |
|
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
61 |
# 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
|
62 |
# 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
|
63 |
my $keyAttr = { config => "name", name => "set"}; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
64 |
# Load template |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
65 |
my $xml = XML::Simple->new(); |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
66 |
my $zipConfig = $xml->XMLin($template, KeyAttr => $keyAttr); |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
67 |
my @allRndFiles; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
68 |
|
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
69 |
# For each package in CSV... |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
70 |
foreach my $package (@packages) |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
71 |
{ |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
72 |
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
|
73 |
$package->{dst} =~ s{^/}{}g; |
102
c2478fad90aa
Fix populateziptemplate.pl to work with new repo structure
Shabe Razvi <shaber@symbian.org>
parents:
94
diff
changeset
|
74 |
if ($package->{source} =~ m{/(sfl|oss)/(MCL|FCL)/sf/([^/]+)/([^/]+)}) |
76
a115d49b621f
Include epl/sfl category in zipfile name
Shabe Razvi <shaber@symbian.org>
parents:
73
diff
changeset
|
75 |
{ |
73
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
76 |
push @{$zipConfig->{config}->{config}->{src}->{config}->{$1}->{config}}, |
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 |
set => |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
79 |
[ |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
80 |
{ |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
81 |
name => "name", |
102
c2478fad90aa
Fix populateziptemplate.pl to work with new repo structure
Shabe Razvi <shaber@symbian.org>
parents:
94
diff
changeset
|
82 |
value=> "src_$1_$3_$4", |
73
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
83 |
}, |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
84 |
{ |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
85 |
name => "include", |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
86 |
value => "$package->{dst}/**", |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
87 |
}, |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
88 |
] |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
89 |
}; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
90 |
} |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
91 |
elsif ($package->{source} =~ m{/rnd/([^/]+)/([^/]+)}) |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
92 |
{ |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
93 |
# RnD repository |
76
a115d49b621f
Include epl/sfl category in zipfile name
Shabe Razvi <shaber@symbian.org>
parents:
73
diff
changeset
|
94 |
my $name = "bin_rnd_$1_$2"; |
73
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
95 |
# Create a zip object |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
96 |
push @{$zipConfig->{config}->{config}->{src}->{config}->{rnd}->{config}}, |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
97 |
{ |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
98 |
set => |
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 |
{ |
88
28463bb10fde
Package RnD binaries from rnd root location to reduce size of include list
Shabe Razvi <shaber@symbian.org>
parents:
84
diff
changeset
|
101 |
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
|
102 |
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
|
103 |
}, |
28463bb10fde
Package RnD binaries from rnd root location to reduce size of include list
Shabe Razvi <shaber@symbian.org>
parents:
84
diff
changeset
|
104 |
{ |
73
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
105 |
name => "name", |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
106 |
value=> "$name", |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
107 |
}, |
88
28463bb10fde
Package RnD binaries from rnd root location to reduce size of include list
Shabe Razvi <shaber@symbian.org>
parents:
84
diff
changeset
|
108 |
{ |
28463bb10fde
Package RnD binaries from rnd root location to reduce size of include list
Shabe Razvi <shaber@symbian.org>
parents:
84
diff
changeset
|
109 |
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
|
110 |
value=> "/**", |
28463bb10fde
Package RnD binaries from rnd root location to reduce size of include list
Shabe Razvi <shaber@symbian.org>
parents:
84
diff
changeset
|
111 |
}, |
73
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
112 |
] |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
113 |
}; |
90
5b27412eeaf0
Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents:
89
diff
changeset
|
114 |
# 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
|
115 |
(my $dosCompatibleDst = $package->{dst}) =~ s{/}{\\}g; |
5b27412eeaf0
Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents:
89
diff
changeset
|
116 |
my @files = `dir /b/s/a-d $dosCompatibleDst 2> nul:`; |
5b27412eeaf0
Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents:
89
diff
changeset
|
117 |
#print "@files\n"; |
5b27412eeaf0
Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents:
89
diff
changeset
|
118 |
next unless @files; |
5b27412eeaf0
Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents:
89
diff
changeset
|
119 |
# Add the files to this zip object |
5b27412eeaf0
Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents:
89
diff
changeset
|
120 |
@files = grep { |
5b27412eeaf0
Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents:
89
diff
changeset
|
121 |
s{\\}{/}g; |
5b27412eeaf0
Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents:
89
diff
changeset
|
122 |
s!^[A-Z]:/$package->{dst}/!!i; |
5b27412eeaf0
Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents:
89
diff
changeset
|
123 |
m{^epoc32/}i; |
5b27412eeaf0
Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents:
89
diff
changeset
|
124 |
} @files; |
5b27412eeaf0
Removed obsolete variable (@includes).
Simon Howkins <simonh@symbian.org>
parents:
89
diff
changeset
|
125 |
push @allRndFiles, @files; |
111
5b0bc2f89660
Add postbuild RnD packaging. Add .whatlog to os tools build.
Shabe Razvi <shaber@symbian.org>
parents:
108
diff
changeset
|
126 |
|
5b0bc2f89660
Add postbuild RnD packaging. Add .whatlog to os tools build.
Shabe Razvi <shaber@symbian.org>
parents:
108
diff
changeset
|
127 |
open FILE, ">", $name ."_includefile.txt" or die "Cannot write includefile!"; |
5b0bc2f89660
Add postbuild RnD packaging. Add .whatlog to os tools build.
Shabe Razvi <shaber@symbian.org>
parents:
108
diff
changeset
|
128 |
print FILE @files; |
5b0bc2f89660
Add postbuild RnD packaging. Add .whatlog to os tools build.
Shabe Razvi <shaber@symbian.org>
parents:
108
diff
changeset
|
129 |
close FILE; |
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 |
else |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
132 |
{ |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
133 |
die "Cannot determine license for '$package->{source}'"; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
134 |
} |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
135 |
} |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
136 |
|
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
137 |
# 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
|
138 |
my @excludes = map { {name => "exclude", value => "$_"} } @allRndFiles; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
139 |
push @{$zipConfig->{config}->{config}->{bin}->{config}->{set}}, @excludes; |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
140 |
|
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
141 |
$xml->XMLout($zipConfig, OutputFile => $ftl, XMLDecl => 1, RootName => 'build', KeyAttr => $keyAttr); |
b8d6af733d6d
Add first cut of packaging solution
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
142 |
|
111
5b0bc2f89660
Add postbuild RnD packaging. Add .whatlog to os tools build.
Shabe Razvi <shaber@symbian.org>
parents:
108
diff
changeset
|
143 |
# Output all rnd files into exclude list for later |
5b0bc2f89660
Add postbuild RnD packaging. Add .whatlog to os tools build.
Shabe Razvi <shaber@symbian.org>
parents:
108
diff
changeset
|
144 |
open FILE, "> rnd_excludefile.txt" or die "Cannot write exludefile!"; |
5b0bc2f89660
Add postbuild RnD packaging. Add .whatlog to os tools build.
Shabe Razvi <shaber@symbian.org>
parents:
108
diff
changeset
|
145 |
print FILE @allRndFiles; |
5b0bc2f89660
Add postbuild RnD packaging. Add .whatlog to os tools build.
Shabe Razvi <shaber@symbian.org>
parents:
108
diff
changeset
|
146 |
close FILE; |