diff -r fa9d7d89d3d6 -r 68f68128601f sbsv1/abld/kif/perl/genkif.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sbsv1/abld/kif/perl/genkif.pl Thu Nov 25 13:59:07 2010 +0000 @@ -0,0 +1,84 @@ +# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# + +use XML::Simple; +use File::Path; +use File::Copy; +use Win32::File; +use Getopt::Long; +use strict; + +my $outfile; +my $verbose; +GetOptions("o=s", \$outfile, "v+", \$verbose); + +if (!defined $outfile) { + die "ERROR: Syntax: genkif.pl -o \n"; +} elsif (-f $outfile) { + print STDOUT "REMARK: KIF generation skipped due to it already existing (in '$outfile').\n"; + exit 0; +} elsif (-e $outfile) { + die "ERROR: KIF output file '$outfile' must not be a directory or other non-file type\n"; +} elsif ($verbose) { + print "Got output file of '$outfile'\n"; +} + +my $buildnum = $ENV{'BuildNumber'}; +if (!defined $buildnum) { + die "ERROR: KIF generation skipped due to the BuildNumber environment variable not being set.\n"; +} elsif ($verbose) { + print "Got build number of '$buildnum'\n"; +} + +my $namespace = "ki"; +my $nsuri = "http://www.symbian.com/kif1"; +my $schema = "kif1.xsd"; + +my $build; +my $version; +if ($buildnum =~ /^(.*)_Symbian_OS_v(.*)$/) { + $build = $1; + $version = $2; + print "Parsed build number as $build, os version $version\n" if $verbose; +} else { + die "ERROR: Build number '$buildnum' is not a valid build number\n"; +} + +# Generate the Kit Information File + +print "Constructing the KIF data\n" if $verbose; + +my $mapper = new XML::Simple('rootname' => $namespace.':kitinfo', 'searchpath' => '.'); + +my $hash = { + 'xsi:schemaLocation' => "$nsuri $schema", + "xmlns:".$namespace => $nsuri, + 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', + 'label' => $buildnum, + $namespace.':release' => { + 'build' => $build, + 'version' => $version + } +}; + +print "Writing the KIF data to '$outfile'\n" if $verbose; + +open(my $out, ">$outfile") or die "ERROR: Couldn't open $outfile for writing: $!\n"; + +print $out $mapper->XMLout($hash, 'xmldecl' => ""); + +close($out) or die "ERROR: Couldn't write to $outfile".": $!\n"; + +print "Generated KIF in $outfile\n";