Add downloadkit functionality to PDK_Helium. Platform rebuild can now be done just by specifying PDK version no.
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description><h3>Description</h3>
<li>This project will rebuild the Symbian^2 and Symbian^3 Platform from source using a Bill Of Materials that can either be downloaded from the <a href="http://developer.symbian.org/main/tools_and_kits/">kits page</a> or from within the job itself.
<li>It encapsulates the steps as defined in the <a href="http://developer.symbian.org/wiki/index.php/How_to_perform_a_platform_build_of_PDK_3.0.b_using_helium"/>manual build process </a>for Helium and is a simple way to start building using the Foundation Build Framework.
<br><br>
The Foundation Build Framework (FBF) is an Apache ANT-like configuration that can be used with the Helium tool, delivered in the <a href="https://developer.symbian.org/main/tools_and_kits/downloads/view.php?id=4"/>PDT</a>.

<h3>Prerequisites</h3>
<li>Installation of mandatory <a href="http://developer.symbian.org/wiki/index.php/How_to_perform_a_platform_build_of_PDK_3.0.b_using_helium#Installing_Build_Tools"/>build tools</a>

<h3>Additional Information</h3>
Source for the FBF can be downloaded from the following Mercurial Repositories -
<br>
<li>FBF Configuration - <a href="https://developer.symbian.org/oss/FCL/interim/fbf/configs/default/"/>https://developer.symbian.org/oss/FCL/interim/fbf/configs/default/</a>
<li>FBF Platform Project - <a href="https://developer.symbian.org/oss/FCL/interim/fbf/projects/platforms"/>https://developer.symbian.org/oss/FCL/interim/fbf/projects/platforms</a>
<li>FBF Bootstrap - <a href="https://developer.symbian.org/oss/FCL/interim/fbf/bootstrap"/>https://developer.symbian.org/oss/FCL/interim/fbf/bootstrap</a>
</description>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.security.AuthorizationMatrixProperty>
<useProjectSecurity>false</useProjectSecurity>
</hudson.security.AuthorizationMatrixProperty>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>BUILD_DRIVE</name>
<description>Physical Build Drive</description>
<defaultValue>C:</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>SUBST_DRIVE</name>
<description>Subst'd EPOC drive</description>
<defaultValue>M:</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>KIT_VERSION</name>
<description>Version of the kit to download. e.g.
<li>2.0.2
<li>3.0.h</description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.BooleanParameterDefinition>
<name>DOWNLOAD_KIT</name>
<description>This will download the Bill of Materials (BOM), tools and prebuilt binaries from the web. Select if -
<li>You havnt downloaded these archives already
<li>You're not sure if you have the correct archives</description>
<defaultValue>false</defaultValue>
</hudson.model.BooleanParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>RELEASE_ZIP_LOCATION</name>
<description>Location of <a href="http://developer.symbian.org/main/tools_and_kits/">release zipfiles</a> e.g.
<li>build_BOM.zip
<li>tools_epoc.zip
</description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>SRC_LOCATION</name>
<description>How to get source for building the Platform -
<li>BOM - download source direct from <a href="https://developer.symbian.org/oss">web</a> using downloaded Bill Of Materials
<li>ZIPFILES - unpack source zips such as src_oss_os.zip from specified location on disk</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>BOM</string>
<string>ZIPFILES</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
<hudson.model.BooleanParameterDefinition>
<name>REBUILD_TOOLS</name>
<description>Tick this if you want to rebuild "TOOLS" target as well
<li> Requires comercial VC++ 6.0 installed plus -
<li> Requires binaries_epoc32_stlport.zip from <a href="http://developer.symbian.org/main/tools_and_kits/">release zipfiles</a></description>
<defaultValue>false</defaultValue>
</hudson.model.BooleanParameterDefinition>
<hudson.model.BooleanParameterDefinition>
<name>SPLIT_BUILD</name>
<description>Is the baseline run in two distinct steps (GT+S60)? Tick this if -
<li> Building older Symbian^2 PDKs. e.g. 2.0.d or earlier.
<li> Building older Symbian^3 PDKs. e.g. 3.0.f or earlier</description>
<defaultValue>false</defaultValue>
</hudson.model.BooleanParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>LOCALISATION</name>
<description>Select whether to build more than one set of localised resources
<li>engineering - just r01, results in quicker build
<li>western - all defined language ids, build takes longer, but localised resources are created</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>engineering</string>
<string>western</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>HG_USERNAME</name>
<description>Enter your symbian developer web username <i>(required for any downloading of packages from BOM)</i></description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.PasswordParameterDefinition>
<name>HG_PASSWORD</name>
<description>Enter your symbian developer web password <i>(required for any downloading of packages from BOM)</i>
<br>
Note: Please be aware that your password will be displayed in <b>cleartext</b> in the top of the console log</description>
<defaultValue></defaultValue>
</hudson.model.PasswordParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>PLATFORM</name>
<description></description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>symbian3</string>
<string>symbian2</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>TARGET</name>
<description>Comma separated list of target(s) to build. Building armv5 targets requires RVCT arm compiler installed.
<br><br>
<li>winscw_udeb.whatlog
<li>winscw_udeb.whatlog, armv5_urel.whatlog
<li>armv5.whatlog,winscw.whatlog</description>
<defaultValue>winscw_udeb.whatlog</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>FBF_REV</name>
<description>The tagged version of the FBF (Helium) to use to build the Platform.
<li>default - is the latest revision from the web
<br><br>
<i>Unless you want a specific revision, its recommended to use the 'default' revision of the FBF</i>
</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>default</string>
<string>PDK_2.0.2</string>
<string>PDK_2.0.1</string>
<string>PDK_2.0.0</string>
<string>PDK_3.0.h</string>
<string>PDK_3.0.g</string>
<string>PDK_3.0.f</string>
<string>PDK_3.0.e</string>
<string>PDK_3.0.d</string>
<string>PDK_3.0.c</string>
<string>PDK_3.0.b</string>
<string>PDK_3.0.a</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<hudson.plugins.disk__usage.DiskUsageProperty/>
<hudson.plugins.descriptionsetter.JobByDescription/>
</properties>
<scm class="hudson.scm.NullSCM"/>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers class="vector"/>
<concurrentBuild>true</concurrentBuild>
<builders>
<hudson.tasks.BatchFile>
<command>@ECHO OFF
IF "%DOWNLOAD_KIT%"=="false" EXIT 0
IF "%SRC_LOCATION%"=="BOM" SET DO_SRC_DOWNLOAD=--nosrc
IF NOT EXIST C:\Symbian\utilities\.hg GOTO CLONE
hg pull --update -R C:\Symbian\utilities
GOTO DOWNLOADKIT
:CLONE
hg clone https://developer.symbian.org/oss/MCL/utilities/ C:\Symbian\utilities
:DOWNLOADKIT
mkdir %RELEASE_ZIP_LOCATION%
cd /d %RELEASE_ZIP_LOCATION%
@ECHO ON
C:\Symbian\utilities\downloadkit\downloadkit.py --nounzip --nowinscw --noarmv5 --progress %DO_SRC_DOWNLOAD% %KIT_VERSION% --username=%HG_USERNAME% --password=%HG_PASSWORD%
exit 0</command>
</hudson.tasks.BatchFile>
<hudson.tasks.BatchFile>
<command>%BUILD_DRIVE%
cd\
rmdir /q/s sf-bootstrap
mkdir sf-bootstrap
cd sf-bootstrap
hg clone http://developer.symbian.org/oss/FCL/interim/fbf/bootstrap
cd bootstrap
hlm -f bootstrap.xml -Dsf.project.repo=http://developer.symbian.org/oss/FCL/interim/fbf/projects/platforms -Dsf.config.repo=http://developer.symbian.org/oss/FCL/interim/fbf/configs/default -Dsf.target.dir=%BUILD_DRIVE%\maintools_%JOB_NAME%.%BUILD_NUMBER% -Dsf.config.rev=%FBF_REV% -Dsf.project.rev=%FBF_REV%</command>
</hudson.tasks.BatchFile>
<hudson.tasks.BatchFile>
<command>%BUILD_DRIVE%
cd\
set HG_PASSWORD=
set PROJECT=single
set TOOLS_BASELINE_ENABLE=true
set TOOLS_CONFIG=tools_rel.whatlog,tools2_rel.whatlog
IF %SPLIT_BUILD% == true set PROJECT=split
IF %REBUILD_TOOLS% == true set TOOLS_BASELINE_ENABLE=false
IF %REBUILD_TOOLS% == false set TOOLS_CONFIG=tools2_rel.whatlog
cd %BUILD_DRIVE%\maintools_%JOB_NAME%.%BUILD_NUMBER%\sf-config
hlm sf-prep -Dbuild.drive=%SUBST_DRIVE% -Dsf.spec.job.number=%JOB_NAME%.%BUILD_NUMBER% -Dsf.spec.job.codeline="%SRC_LOCATION%" -Dsf.project.location=%BUILD_DRIVE%\maintools_%JOB_NAME%.%BUILD_NUMBER%\build\config\%PLATFORM%\%PROJECT% -Dsf.spec.splitbuild=%SPLIT_BUILD% -Dsf.spec.sbs.config="%TARGET%" -Dsf.spec.baseline.enable=%TOOLS_BASELINE_ENABLE% -Dsf.spec.sbs.tools.config="%TOOLS_CONFIG%" -Dsf.spec.job.rootdir=%BUILD_DRIVE% -Dsf.suppress.buildenv.check=true -Dsf.suppress.drive.space.check=true -Dsf.spec.logs.raptorfilter.enable=false</command>
</hudson.tasks.BatchFile>
<hudson.tasks.BatchFile>
<command>%SUBST_DRIVE%
cd\
mkdir tmp
copy %RELEASE_ZIP_LOCATION%\build_BOM.zip %SUBST_DRIVE%\tmp
copy %RELEASE_ZIP_LOCATION%\binaries_epoc_additional.zip %SUBST_DRIVE%\tmp
rem copy %RELEASE_ZIP_LOCATION%\binaries_bldmefirst.zip %SUBST_DRIVE%\tmp
copy %RELEASE_ZIP_LOCATION%\*_rndonly*.zip %SUBST_DRIVE%\tmp
copy %RELEASE_ZIP_LOCATION%\bin_redist*.zip %SUBST_DRIVE%\tmp
IF %SRC_LOCATION% == BOM goto TOOLSZIP
copy %RELEASE_ZIP_LOCATION%\src_*.zip %SUBST_DRIVE%\tmp
:TOOLSZIP
IF %REBUILD_TOOLS% == true goto UNZIP
copy %RELEASE_ZIP_LOCATION%\binaries_epoc32_stlport.zip %SUBST_DRIVE%\tmp
copy %RELEASE_ZIP_LOCATION%\tools_*.zip %SUBST_DRIVE%\tmp
:UNZIP
%SUBST_DRIVE%
cd %SUBST_DRIVE%\tmp
7z x *.zip -o.. -y
cd..
7z x *.zip -y
del *.zip
exit 0</command>
</hudson.tasks.BatchFile>
<hudson.tasks.BatchFile>
<command>IF NOT %SRC_LOCATION% == BOM exit
%SUBST_DRIVE%
cd \
@ECHO OFF
IF NOT "%HG_USERNAME%" == "" GOTO USERNAME_OK
echo "You must enter a UserName and Password when using the BOM option"
exit 1
:USERNAME_OK
IF NOT "%HG_PASSWORD%" == "" GOTO HG_OK
echo "You must enter a UserName and Password when using the BOM option"
exit 1
:HG_OK
cd \tmp
hg clone http://developer.symbian.org/oss/MCL/utilities
cd\
\tmp\utilities\clone_packages\clone_all_packages.pl -packagelist \build_info\logs\BOM\build-info.xml -username %HG_USERNAME% -password %HG_PASSWORD% -retries=7</command>
</hudson.tasks.BatchFile>
<hudson.tasks.BatchFile>
<command>%BUILD_DRIVE%
cd\
set HG_PASSWORD=
set PROJECT=single
set TOOLS_BASELINE_ENABLE=true
set TOOLS_CONFIG=tools_rel.whatlog,tools2_rel.whatlog
IF %SPLIT_BUILD% == true set PROJECT=split
IF %REBUILD_TOOLS% == true set TOOLS_BASELINE_ENABLE=false
IF %REBUILD_TOOLS% == false set TOOLS_CONFIG=tools2_rel.whatlog
cd %BUILD_DRIVE%\maintools_%JOB_NAME%.%BUILD_NUMBER%\sf-config
hlm sf-build-noprep -Dbuild.drive=%SUBST_DRIVE% -Dsf.spec.job.number=%JOB_NAME%.%BUILD_NUMBER% -Dsf.spec.job.codeline="%SRC_LOCATION%" -Dsf.project.location=%BUILD_DRIVE%\maintools_%JOB_NAME%.%BUILD_NUMBER%\build\config\%PLATFORM%\%PROJECT% -Dsf.spec.splitbuild=%SPLIT_BUILD% -Dsf.spec.sbs.config="%TARGET%" -Dsf.spec.baseline.enable=%TOOLS_BASELINE_ENABLE% -Dsf.spec.sbs.tools.config="%TOOLS_CONFIG%" -Dsf.spec.job.rootdir=%BUILD_DRIVE% -Dsf.suppress.buildenv.check=true -Dsf.suppress.drive.space.check=true -Dsf.spec.logs.raptorfilter.enable=false -Dsf.spec.publish.enable=false -Dsf.spec.package.bin.enable=false -Dsf.spec.test.sendpkg.enable=false -Dskip.sbs.layer.generation=true</command>
</hudson.tasks.BatchFile>
</builders>
<publishers/>
<buildWrappers/>
</project>