diff -r 000000000000 -r 83f4b4db085c toolsandutils/productionbldtools/package.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolsandutils/productionbldtools/package.pl Tue Feb 02 01:39:43 2010 +0200 @@ -0,0 +1,183 @@ +#!perl + +# package.pl + +# Copyright (c) 1997-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: +# Version Info: +# Version 001: initial version +# Version 002: Typhoon: InstallCustKit.pl added for CustKit +# Version 003: Typhoon: calls GenerateLicenseeBuild.exe before building +# Version 004: Typhoon: auto-generates packages before building; +# produces differences between this report & previous build's +# calls script to produce CustKit as ZIPs +# Version 005: Typhoon: calls docplugintool script +# Version 006: Typhoon: Master Codeline +# Version 007: Master Codeline +# Version 007: Master Codeline - beech/cedar split & DocPlugInTool removed +# Version 008: Master Codeline - custkit.txt generation removed +# +# + + + +use Cwd; +use File::Basename; +use File::Path; + +use FindBin; # where does this script live? +use lib $FindBin::Bin; # use this directory for libraries, to find... +use KitStandardLocations; + +my $PlatformProductToolsDir = $FindBin::Bin; +$PlatformProductToolsDir =~ s/common/$Platform/i; # change "common" to platform name in path to tools directory +unshift (@INC, $PlatformProductToolsDir); # add this to the @INC list of library paths +require KitPlatformSpecific; # and read the platform-specific definitions +require AllKitsRebaseline; +require BuildKit; +require TestKit; +require MakeCustKitZips; + +# ------------------------------ Global variables ---------------------------- + +my $Company = "Symbian"; + + +my $BuildNumber = $ARGV[0]; +$Kit_ID = $BuildNumber; + +my $pkgSrcDefDevKitDir = "$DevKitPath\\$SrcDefDir"; +my $pkgSrcDefCustKitDir ="$CustKitPath\\$SrcDefDir"; + +my $outputCustKitZipsDir = "$ProductPath\\_PACKAGES\\CustKit_Zips"; +my $outputInternalZipsDir = "$ProductPath\\generated"; + + +my $KitBuilderSrcDir = "$SourceDir\\common\\generic\\tools\\CustKits\\KitBuilder"; +my $KitBuilderBldDir = "$OutputDir\\techview\\epoc32\\tools\\CustKits\\KitBuilder"; +my $NavigationPagesDir = "$SourceDir\\common\\generic\\tools\\CustKits\\NavigationPages"; + + +my $sourceListDevKit = "DevKit.srcdef"; +my $sourceListCustKit = "CustKit.srcdef"; + + +my $buildPkg = "$OutputDir\\generic\\epoc32\\tools\\buildpkg"; +my $createPkgSrc = "$OutputDir\\generic\\epoc32\\tools\\createpkgsrc"; +my $diff = "$OutputDir\\generic\\epoc32\\gcc\\bin\\diff"; + +my $scriptFile = "InstallCustKit.pl"; +my $scriptFileZips = "InstallCustKitZIPs.pl"; +my $scriptHelpFile = "ReadMe_First.txt"; + + + +# ----------------- Start of main() ------------------------ + +open STDERR, ">&STDOUT" ; +select STDOUT; $| = 1; +select STDERR; $| = 1; + +my $time=localtime; +print "=== Build process for Kit $Kit_ID started at $time\n"; + + +# get the drive we're running on - use for various parameters later on +my $initialDir = cwd(); +$initialDir =~ m/^(\w:)/ ; +my $initialDrive = $1; + + +my $CommonProductToolsDir = $FindBin::Bin; +$CommonProductToolsDir =~ s|/|\\|g; +$PlatformProductToolsDir =~ s|/|\\|g; + + +# Generate a list of available files +print "** generate .lis files\n"; +my $logsPath = "$ProductPath\\generated\\logs"; # ensure we can create log files +(mkpath $logsPath or print "WARNING: Couldn't create directory for logs\n") if (! -d $logsPath); +chdir("$OutputDir\\generic"); +system("perl $CommonProductToolsDir\\bfrc\\listdir.pl --files epoc32 > $logsPath\\GT.lis"); +chdir("$OutputDir\\techview"); +system("perl $CommonProductToolsDir\\bfrc\\listdir.pl --files epoc32 > $logsPath\\TechView.lis"); + + + +# run tools to produce up-to-date packages and compare to previous build's package definitions +print "** RebaselineAndCompare()\n"; +RebaselineAndCompare(); + + + +# generate the licencee list of restricted files +print "** LicenceeRestrictionsList\n"; +LicenceeRestrictionsList(); + + + +# build the packages into Kits +print "** BuildKits()\n"; +BuildKit::BuildKit(); + + + +# produce CustKit as a set of ZIPs, with script and HTML navigation pages +# print "** CustKit as ZIPs\n"; +# CustKitAsZips(); + + + +# produce kit report and difference between this report & previous build's +TestKit::TestKit(); +system ("$diff --text --speed-large-files $ENV{'PublishLocation'}\\$ENV{'Type'}\\$ENV{'Previousbuildnumber'}\\logs\\KitReport.txt $ENV{'LogsDir'}\\KitReport.txt > $ENV{'LogsDir'}\\KitReportDiffs.txt"); + + + +$time=localtime; +print "=== Build process for Kit $Kit_ID ended at $time\n"; + + + + + +# ----------------- Start of LicenceeRestrictionsList() ------------------------ +sub LicenceeRestrictionsList() +{ + my $PackageDefs_copy = "\\PackageDefinitions_copy"; + mkdir $KitBuilderBldDir."\\".$PackageDefs_copy, 0777 ; + system("xcopy $pkgDefDevKitDir $KitBuilderBldDir$PackageDefs_copy /E /Z /I /Q"); + system("del $KitBuilderBldDir\\$PackageDefs_copy /F /Q"); +} + + + +# ----------------- Start of RebaselineAndCompare() ------------------------ +sub RebaselineAndCompare() +{ + chdir($CommonProductToolsDir) or die "Unable to change to $CommonProductToolsDir\n"; + AllKitsRebaseline::AllKitsRebaseline("$ProductPath\\generated"); + +} + + +# ----------------- Start of CustKitAsZips() ------------------------ +sub CustKitAsZips() +{ + chdir($PlatformProductToolsDir) or die "Unable to change to $PlatformProductToolsDir\n"; + MakeCustKitZIPs::MakeCustKitZIPs ($pkgDefCustKitDir, $pkgDefDevKitDir, $outputCustKitZipsDir, "$ProductPath\\generated", $outputInternalZipsDir); + system("copy ".$PlatformProductToolsDir."\\".$scriptFileZips." ".$outputCustKitZipsDir); + system("xcopy ".$NavigationPagesDir." ".$outputCustKitZipsDir." /S /I /Q") ; + system("del ".$outputCustKitZipsDir."\\distribution.policy /F /Q") ; +}