author | andy simpson <andrews@symbian.org> |
Wed, 26 May 2010 12:52:49 +0100 | |
changeset 1074 | 15428d415dba |
parent 1073 | ac18844eb787 |
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"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
6 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
7 |
system("rmdir /S /Q tmp") if (-d "tmp"); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
8 |
mkdir("tmp"); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
9 |
chdir("tmp"); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
10 |
|
1063
fafd97533066
Use MCL for packages repo
Dario Sestito <darios@symbian.org>
parents:
1062
diff
changeset
|
11 |
print "\n\n### CLONE MCL/sftools/fbf/projects/packages REPO ###\n"; |
1067 | 12 |
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
|
13 |
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
|
14 |
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
|
15 |
system($updatehifi_cmd); |
1060
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
16 |
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
|
17 |
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
|
18 |
#print "\n\n### CLONE MCL/sf/os/buildtools REPO ###\n"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
19 |
#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
|
20 |
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
|
21 |
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
|
22 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
23 |
# get the codelines from the packages repo |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
24 |
opendir(DIR, "packages"); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
25 |
my @codelines = grep(($_ !~ /^\.\.?$/ and $_ =~ /^symbian/), readdir(DIR)); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
26 |
close(DIR); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
27 |
|
1067 | 28 |
my $packages_changeset = ''; |
29 |
||
1060
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
30 |
# loop over codelines |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
31 |
for my $codeline (@codelines) |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
32 |
{ |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
33 |
mkdir($codeline); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
34 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
35 |
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
|
36 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
37 |
# 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
|
38 |
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
|
39 |
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
|
40 |
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
|
41 |
system($updatehifi_cmd); |
1067 | 42 |
if (!$packages_changeset) |
43 |
{ |
|
44 |
$packages_changeset = `hg -R packages identify -i`; |
|
45 |
chomp $packages_changeset; |
|
46 |
print "-->$packages_changeset<--\n"; |
|
47 |
} |
|
1060
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
48 |
my $full_cmd = "$XALAN_C -o $codeline\\full_system_model_3.0.xml $ROOT_SYSDEF $SYSDEFTOOLS_PATH\\joinsysdef.xsl"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
49 |
print "$full_cmd\n"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
50 |
system($full_cmd); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
51 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
52 |
# Filter the model to remove the test and techview units |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
53 |
print "\n\n### REMOVE UNDESIRED UNITS ###\n"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
54 |
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
|
55 |
print "$filter_cmd\n"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
56 |
system($filter_cmd); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
57 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
58 |
# 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
|
59 |
print "\n\n### DOWNGRADE TO SCHEMA 2.0.1 ###\n"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
60 |
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
|
61 |
print "$downgrade_cmd\n"; |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
62 |
system($downgrade_cmd); |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
63 |
|
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
64 |
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
|
65 |
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
|
66 |
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
|
67 |
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
|
68 |
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
|
69 |
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
|
70 |
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
|
71 |
system($updatesysdef_cmd); |
1069
96567d7b618a
Exec hg add/addremove commands before hg diff
Dario Sestito <darios@symbian.org>
parents:
1068
diff
changeset
|
72 |
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
|
73 |
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
|
74 |
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
|
75 |
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
|
76 |
if (@diff_output) |
1060
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
77 |
{ |
1072
48e2f89df0ad
change destination directory for auto generated model to sydefs\auto
Andy Simpson<andrew.simpson@symbian.com>
parents:
1071
diff
changeset
|
78 |
system("hg -R platforms add"); |
1067 | 79 |
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
|
80 |
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
|
81 |
|
1060
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
82 |
} |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
83 |
} |
14f4464f36ae
Add generate_system_models.pl
Dario Sestito <darios@symbian.org>
parents:
diff
changeset
|
84 |