generate_system_models.pl
changeset 1067 bab959d5bc37
parent 1066 e8cf0ceec61a
child 1068 6f5db200d8d5
--- a/generate_system_models.pl	Mon May 17 15:34:18 2010 +0100
+++ b/generate_system_models.pl	Tue May 18 15:36:51 2010 +0100
@@ -9,10 +9,7 @@
 chdir("tmp");
 
 print "\n\n### CLONE MCL/sftools/fbf/projects/packages REPO ###\n";
-system("hg clone -r HighFidelityModel http://developer.symbian.org/oss/MCL/sftools/fbf/projects/packages");
-my $changeset = `hg -R packages identify -i`;
-chomp $changeset;
-print "-->$changeset<--\n";
+system("hg clone http://developer.symbian.org/oss/MCL/sftools/fbf/projects/packages");
 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
 my $timestamp = sprintf "%4d%02d%02d%02d%02d%02d",$year+1900,$mon+1,$mday,$hour,$min,$sec;
 #print "\n\n### CLONE MCL/sf/os/buildtools REPO ###\n";
@@ -25,6 +22,8 @@
 my @codelines = grep(($_ !~ /^\.\.?$/ and $_ =~ /^symbian/), readdir(DIR));
 close(DIR);
 
+my $packages_changeset = '';
+
 # loop over codelines
 for my $codeline (@codelines)
 {
@@ -37,6 +36,12 @@
 	my $updatehifi_cmd = "hg -R packages update -r HighFidelityModel";
 	print "$updatehifi_cmd\n";
 	system($updatehifi_cmd);
+	if (!$packages_changeset)
+	{
+		$packages_changeset = `hg -R packages identify -i`;
+		chomp $packages_changeset;
+		print "-->$packages_changeset<--\n";
+	}
 	my $full_cmd = "$XALAN_C -o $codeline\\full_system_model_3.0.xml $ROOT_SYSDEF $SYSDEFTOOLS_PATH\\joinsysdef.xsl";
 	print "$full_cmd\n";
 	system($full_cmd);
@@ -90,21 +95,27 @@
 		mkdir("platforms\\$codeline\\single") if (!-d "platforms\\$codeline\\single");
 		mkdir("platforms\\$codeline\\single\\sysdefs") if (!-d "platforms\\$codeline\\single\\sysdefs");
 		mkdir("platforms\\$codeline\\single\\sysdefs\\auto") if (!-d "platforms\\$codeline\\single\\sysdefs\\auto");
-		system("copy $codeline\\system_model.xml platforms\\$codeline\\single\\sysdefs\\auto\\model_$timestamp\_$changeset.xml");
+		system("copy $codeline\\system_model.xml platforms\\$codeline\\single\\sysdefs\\auto\\model_$timestamp\_$packages_changeset.xml");
 		system("hg -R platforms add");
-		system("hg -R platforms commit -m \"Add auto generated $codeline system model (packages\@$changeset)\" -u\"Dario Sestito <darios\@symbian.org>\"");
-		system("hg -R platforms push http://darios:symbian696b\@developer.symbian.org/oss/MCL/sftools/fbf/projects/platforms");
+		system("hg -R platforms commit -m \"Add auto generated $codeline system model (packages\@$packages_changeset)\" -u\"Dario Sestito <darios\@symbian.org>\"");
+		#system("hg -R platforms push http://darios:symbian696b\@developer.symbian.org/oss/MCL/sftools/fbf/projects/platforms");
 		
 		# Split model into package models
 		print "\n\n### SPLIT MODEL INTO PACKAGE MODELS ###\n";
 		my $updatedefault_cmd = "hg -R packages update -r default";
 		print "$updatedefault_cmd\n";
 		system($updatedefault_cmd);
+		my $rmdir_cmd = "del /S packages\\symbian3\\package_definition.xml";
+		print "$rmdir_cmd\n";
+		system($rmdir_cmd);
 		my $splitmodel_cmd = "perl ..\\split_sysdef.pl -s $codeline\\system_model.xml -o packages\\$codeline";
 		print "$splitmodel_cmd\n";
 		system($splitmodel_cmd);
 		if ($codeline eq 'symbian3') # also update CompilerCompatibility
 		{
+			my $rmdir2_cmd = "del /S  packages\\CompilerCompatibility\\package_definition.xml";
+			print "$rmdir2_cmd\n";
+			system($rmdir2_cmd);
 			my $splitmodel2_cmd = "perl ..\\split_sysdef.pl -s $codeline\\system_model.xml -o packages\\CompilerCompatibility";
 			print "$splitmodel2_cmd\n";
 			system($splitmodel2_cmd);
@@ -114,15 +125,15 @@
 		my @diff_output = `$diff_cmd`;
 		if (@diff_output)
 		{
-			my $add_cmd = "hg -R packages add";
-			print "$add_cmd\n";
-			system($add_cmd);
-			my $commit_cmd = "hg -R packages commit -m \"Update package models from auto generated system model (packages\@$changeset)\" -u\"Dario Sestito <darios\@symbian.org>\"";
+			my $addremove_cmd = "hg -R packages addremove";
+			print "$addremove_cmd\n";
+			system($addremove_cmd);
+			my $commit_cmd = "hg -R packages commit -m \"Update package models from auto generated system model (packages\@$packages_changeset)\" -u\"Dario Sestito <darios\@symbian.org>\"";
 			print "$commit_cmd\n";
 			system($commit_cmd);
 			my $push_cmd = "hg -R packages push http://darios:symbian696b\@developer.symbian.org/oss/MCL/sftools/fbf/projects/packages";
 			print "$push_cmd\n";
-			system($push_cmd);
+			#system($push_cmd);
 		}
 	}
 }