author | Simon Howkins <simonh@symbian.org> |
Mon, 27 Sep 2010 21:21:29 +0100 | |
changeset 1238 | 12dad5079459 |
parent 1223 | 9a6d81b932b1 |
permissions | -rw-r--r-- |
1060
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
1 |
use strict; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
2 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
3 |
my $SYSDEFTOOLS_PATH = "packages\\sysdeftools"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
4 |
my $XALAN_J = "java -jar $SYSDEFTOOLS_PATH\\xalan.jar"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
5 |
my $XALAN_C = "packages\\sysmodelgen\\rsc\\installed\\Xalan\\Xalan.exe"; |
1221
4fbe6b3c1776
Updated script for symbian 4 system model.
Johan Groth <johang@symbian.org>
parents:
1075
diff
changeset
|
6 |
my $joinsysdef_cmd = "perl $SYSDEFTOOLS_PATH\\joinsysdef.pl "; |
1060
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
7 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
8 |
system("rmdir /S /Q tmp") if (-d "tmp"); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
9 |
mkdir("tmp"); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
10 |
chdir("tmp"); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
11 |
|
1063
fafd97533066
Use MCL for packages repo
Dario Sestito <darios@symbian.org>
parents:
1062
diff
changeset
|
12 |
print "\n\n### CLONE MCL/sftools/fbf/projects/packages REPO ###\n"; |
1067 | 13 |
system("hg clone http://developer.symbian.org/oss/MCL/sftools/fbf/projects/packages"); |
1068
6f5db200d8d5
Auto generate system model into codeline/single/sysdef instead of auto directory. Minor fixes
Dario Sestito <darios@symbian.org>
parents:
1067
diff
changeset
|
14 |
my $updatehifi_cmd = "hg -R packages update -r HighFidelityModel"; |
6f5db200d8d5
Auto generate system model into codeline/single/sysdef instead of auto directory. Minor fixes
Dario Sestito <darios@symbian.org>
parents:
1067
diff
changeset
|
15 |
print "$updatehifi_cmd\n"; |
6f5db200d8d5
Auto generate system model into codeline/single/sysdef instead of auto directory. Minor fixes
Dario Sestito <darios@symbian.org>
parents:
1067
diff
changeset
|
16 |
system($updatehifi_cmd); |
1060
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
17 |
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
18 |
my $timestamp = sprintf "%4d%02d%02d%02d%02d%02d",$year+1900,$mon+1,$mday,$hour,$min,$sec; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
19 |
#print "\n\n### CLONE MCL/sf/os/buildtools REPO ###\n"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
20 |
#system("hg clone -r RCL_3 http://developer.symbian.org/oss/MCL/sf/os/buildtools"); |
1062
242f69b8015f
Use MCL for the platforms repo
Dario Sestito <darios@symbian.org>
parents:
1061
diff
changeset
|
21 |
print "\n\n### CLONE MCL/sftools/fbf/projects/platforms REPO ###\n"; |
242f69b8015f
Use MCL for the platforms repo
Dario Sestito <darios@symbian.org>
parents:
1061
diff
changeset
|
22 |
system("hg clone -r default http://developer.symbian.org/oss/MCL/sftools/fbf/projects/platforms"); |
1060
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
23 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
24 |
# get the codelines from the packages repo |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
25 |
opendir(DIR, "packages"); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
26 |
my @codelines = grep(($_ !~ /^\.\.?$/ and $_ =~ /^symbian/), readdir(DIR)); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
27 |
close(DIR); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
28 |
|
1067 | 29 |
my $packages_changeset = ''; |
30 |
||
1060
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
31 |
# loop over codelines |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
32 |
for my $codeline (@codelines) |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
33 |
{ |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
34 |
mkdir($codeline); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
35 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
36 |
my $ROOT_SYSDEF = "packages\\$codeline\\os\\deviceplatformrelease\\foundation_system\\system_model\\system_definition.xml"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
37 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
38 |
# Full model in schema 3.0.0 format, including all of the test units. |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
39 |
print "\n\n### GENERATE FULL MODEL ###\n"; |
1070
ab041f8d7a61
Fix: update back to HighFidelityModel is not possible because there are changed files and it crosses branches
Dario Sestito <darios@symbian.org>
parents:
1069
diff
changeset
|
40 |
my $updatehifi_cmd = "hg -R packages update -r HighFidelityModel -C"; |
1065
4656372c9b53
Add automatic update of package models to the packages repository (default branch)
Dario Sestito <darios@symbian.org>
parents:
1063
diff
changeset
|
41 |
print "$updatehifi_cmd\n"; |
4656372c9b53
Add automatic update of package models to the packages repository (default branch)
Dario Sestito <darios@symbian.org>
parents:
1063
diff
changeset
|
42 |
system($updatehifi_cmd); |
1067 | 43 |
if (!$packages_changeset) |
44 |
{ |
|
45 |
$packages_changeset = `hg -R packages identify -i`; |
|
46 |
chomp $packages_changeset; |
|
47 |
print "-->$packages_changeset<--\n"; |
|
48 |
} |
|
1221
4fbe6b3c1776
Updated script for symbian 4 system model.
Johan Groth <johang@symbian.org>
parents:
1075
diff
changeset
|
49 |
my $full_cmd = ''; |
4fbe6b3c1776
Updated script for symbian 4 system model.
Johan Groth <johang@symbian.org>
parents:
1075
diff
changeset
|
50 |
if ($codeline eq "symbian3") |
4fbe6b3c1776
Updated script for symbian 4 system model.
Johan Groth <johang@symbian.org>
parents:
1075
diff
changeset
|
51 |
{ |
4fbe6b3c1776
Updated script for symbian 4 system model.
Johan Groth <johang@symbian.org>
parents:
1075
diff
changeset
|
52 |
$full_cmd = "$XALAN_C -o $codeline\\full_system_model_3.0.xml $ROOT_SYSDEF $SYSDEFTOOLS_PATH\\joinsysdef.xsl"; |
4fbe6b3c1776
Updated script for symbian 4 system model.
Johan Groth <johang@symbian.org>
parents:
1075
diff
changeset
|
53 |
} |
4fbe6b3c1776
Updated script for symbian 4 system model.
Johan Groth <johang@symbian.org>
parents:
1075
diff
changeset
|
54 |
elsif ($codeline eq "symbian4") |
4fbe6b3c1776
Updated script for symbian 4 system model.
Johan Groth <johang@symbian.org>
parents:
1075
diff
changeset
|
55 |
{ |
4fbe6b3c1776
Updated script for symbian 4 system model.
Johan Groth <johang@symbian.org>
parents:
1075
diff
changeset
|
56 |
my $config_dir = "packages\\$codeline\\config"; |
1223
9a6d81b932b1
Corrected the path option to joinsysdef.pl.
Johan Groth <johang@symbian.org>
parents:
1221
diff
changeset
|
57 |
my $path = "os/deviceplatformrelease/foundation_system/system_model/system_definition.xml"; |
9a6d81b932b1
Corrected the path option to joinsysdef.pl.
Johan Groth <johang@symbian.org>
parents:
1221
diff
changeset
|
58 |
$full_cmd = "$joinsysdef_cmd --out=$codeline\\full_system_model_3.0.xml --exclude-meta=Api --path=$path --config=$config_dir\\bldvariant.hrh -I$config_dir $ROOT_SYSDEF"; |
1221
4fbe6b3c1776
Updated script for symbian 4 system model.
Johan Groth <johang@symbian.org>
parents:
1075
diff
changeset
|
59 |
} |
1060
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
60 |
print "$full_cmd\n"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
61 |
system($full_cmd); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
62 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
63 |
# Filter the model to remove the test and techview units |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
64 |
print "\n\n### REMOVE UNDESIRED UNITS ###\n"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
65 |
my $filter_cmd = "$XALAN_C -o $codeline\\system_model_3.0.xml -p filter \"'!test,!techview'\" -p filter-type 'has' $codeline\\full_system_model_3.0.xml $SYSDEFTOOLS_PATH\\filtering.xsl"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
66 |
print "$filter_cmd\n"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
67 |
system($filter_cmd); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
68 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
69 |
# Downgrade the model to schema 2.0.1 for use with Helium and Raptor |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
70 |
print "\n\n### DOWNGRADE TO SCHEMA 2.0.1 ###\n"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
71 |
my $downgrade_cmd = "$XALAN_C -o $codeline\\system_model.xml $codeline\\system_model_3.0.xml $SYSDEFTOOLS_PATH\\sysdefdowngrade.xsl"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
72 |
print "$downgrade_cmd\n"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
73 |
system($downgrade_cmd); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
74 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
75 |
print "\n\n### PUSH TO PLATFORMS REPOSITORY (auto) ###\n"; |
1068
6f5db200d8d5
Auto generate system model into codeline/single/sysdef instead of auto directory. Minor fixes
Dario Sestito <darios@symbian.org>
parents:
1067
diff
changeset
|
76 |
mkdir("platforms\\$codeline") if (!-d "platforms\\$codeline"); |
6f5db200d8d5
Auto generate system model into codeline/single/sysdef instead of auto directory. Minor fixes
Dario Sestito <darios@symbian.org>
parents:
1067
diff
changeset
|
77 |
mkdir("platforms\\$codeline\\single") if (!-d "platforms\\$codeline\\single"); |
6f5db200d8d5
Auto generate system model into codeline/single/sysdef instead of auto directory. Minor fixes
Dario Sestito <darios@symbian.org>
parents:
1067
diff
changeset
|
78 |
mkdir("platforms\\$codeline\\single\\sysdefs") if (!-d "platforms\\$codeline\\single\\sysdefs"); |
1072
48e2f89df0ad
change destination directory for auto generated model to sydefs\auto
Andy Simpson<andrew.simpson@symbian.com>
parents:
1071
diff
changeset
|
79 |
mkdir("platforms\\$codeline\\single\\sysdefs\\auto") if (!-d "platforms\\$codeline\\single\\sysdefs\\auto"); |
48e2f89df0ad
change destination directory for auto generated model to sydefs\auto
Andy Simpson<andrew.simpson@symbian.com>
parents:
1071
diff
changeset
|
80 |
my $updatesysdef_cmd = "copy /Y $codeline\\system_model.xml platforms\\$codeline\\single\\sysdefs\\auto\\system_model.xml"; |
1068
6f5db200d8d5
Auto generate system model into codeline/single/sysdef instead of auto directory. Minor fixes
Dario Sestito <darios@symbian.org>
parents:
1067
diff
changeset
|
81 |
print "$updatesysdef_cmd\n"; |
6f5db200d8d5
Auto generate system model into codeline/single/sysdef instead of auto directory. Minor fixes
Dario Sestito <darios@symbian.org>
parents:
1067
diff
changeset
|
82 |
system($updatesysdef_cmd); |
1069
96567d7b618a
Exec hg add/addremove commands before hg diff
Dario Sestito <darios@symbian.org>
parents:
1068
diff
changeset
|
83 |
system("hg -R platforms add"); # just in case this is a new platform |
1068
6f5db200d8d5
Auto generate system model into codeline/single/sysdef instead of auto directory. Minor fixes
Dario Sestito <darios@symbian.org>
parents:
1067
diff
changeset
|
84 |
my $diff_cmd = "hg -R platforms diff --stat"; |
6f5db200d8d5
Auto generate system model into codeline/single/sysdef instead of auto directory. Minor fixes
Dario Sestito <darios@symbian.org>
parents:
1067
diff
changeset
|
85 |
print "$diff_cmd\n"; |
6f5db200d8d5
Auto generate system model into codeline/single/sysdef instead of auto directory. Minor fixes
Dario Sestito <darios@symbian.org>
parents:
1067
diff
changeset
|
86 |
my @diff_output = `$diff_cmd`; |
6f5db200d8d5
Auto generate system model into codeline/single/sysdef instead of auto directory. Minor fixes
Dario Sestito <darios@symbian.org>
parents:
1067
diff
changeset
|
87 |
if (@diff_output) |
1060
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
88 |
{ |
1072
48e2f89df0ad
change destination directory for auto generated model to sydefs\auto
Andy Simpson<andrew.simpson@symbian.com>
parents:
1071
diff
changeset
|
89 |
system("hg -R platforms add"); |
1067 | 90 |
system("hg -R platforms commit -m \"Add auto generated $codeline system model (packages\@$packages_changeset)\" -u\"Dario Sestito <darios\@symbian.org>\""); |
1068
6f5db200d8d5
Auto generate system model into codeline/single/sysdef instead of auto directory. Minor fixes
Dario Sestito <darios@symbian.org>
parents:
1067
diff
changeset
|
91 |
system("hg -R platforms push http://darios:symbian696b\@developer.symbian.org/oss/MCL/sftools/fbf/projects/platforms"); |
1065
4656372c9b53
Add automatic update of package models to the packages repository (default branch)
Dario Sestito <darios@symbian.org>
parents:
1063
diff
changeset
|
92 |
|
1060
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
93 |
} |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
94 |
} |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
95 |