Replace PKG_Helium with new configs FBF_PrepareEnvironment & FBF_BuildPackage
authorShabe Razvi <shaber@symbian.org>
Tue, 02 Feb 2010 20:27:18 +0000
changeset 10 6605a601cc77
parent 9 eb11a5189bd4
child 11 bb9574f14ea1
Replace PKG_Helium with new configs FBF_PrepareEnvironment & FBF_BuildPackage
FBF_BuildPackage/config.xml
FBF_PrepareEnvironment/config.xml
PKG_Helium/config.xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FBF_BuildPackage/config.xml	Tue Feb 02 20:27:18 2010 +0000
@@ -0,0 +1,133 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<project>
+  <actions/>
+  <description>&lt;img align=&quot;center&quot; src=&quot;http://developer.symbian.org/img/skin1209/header_bg.gif&quot; /&gt;&#xd;
+&lt;h3&gt;Description&lt;/h3&gt;&#xd;
+&lt;p&gt;This project builds a specified package against a build environment created using the &lt;b&gt;FBF_PrepareEnvironment&lt;/b&gt; project (using the &lt;a href=&quot;http://developer.symbian.org/wiki/index.php/Build_machinery#Helium_.2F_Foundation_Build_Framework&quot;/&gt;Foundation Build Framework (Helium)&lt;/a&gt;). The project can build the specified package from source already unzipped in the environment, or you can specify that you want the source cloned from Mercurial (this will be done at the correct revision as specified in the BOM)&lt;/p&gt;&#xd;
+&#xd;
+&lt;h3&gt;Prerequisites&lt;/h3&gt;&#xd;
+&lt;ol&gt;&#xd;
+&lt;li&gt;Run the &lt;b&gt;FBF_PrepareEnvironment&lt;/b&gt; project to prepare a build drive (your PC must satisfy all the FBF_PrepareEnvironment project preconditions). The build drive should have a &apos;maintools&apos; folder in the root as a result of running FBF_PrepareEnvironment&lt;/li&gt;&#xd;
+&lt;li&gt;If you wish to use a pre-prepared build that is no longer mapped to a drive, then you will need to &lt;tt&gt;subst&lt;/tt&gt; the build folder on the physical build drive - for example to &lt;tt&gt;subst&lt;/tt&gt; a folder on C: drive to M:&#xd;
+&lt;pre&gt;cd C:\unique_build_directory_created_by_FBF_PrepareEnvironment\&#xd;
+subst M: .&#xd;
+&lt;/pre&gt;&lt;/li&gt; &#xd;
+&lt;/ol&gt;&#xd;
+&#xd;
+&lt;h3&gt;Operation&lt;/h3&gt;&#xd;
+&lt;p&gt;The project will perform the following operations on the specified &lt;tt&gt;subst&lt;/tt&gt; drive:&lt;/p&gt;&#xd;
+&lt;ol&gt;&#xd;
+&lt;li&gt;(If requested) clone the source for the specified package from the web, at the revision in the BOM if GET_PACKAGE_SOURCE is specified.&lt;/li&gt;&#xd;
+&lt;li&gt;Compile the specified package (on cloned or pre-extracted source)&lt;/li&gt;&#xd;
+&lt;li&gt;Run post build reporting.&lt;/li&gt;&#xd;
+&lt;/ol&gt;&#xd;
+&#xd;
+&lt;h3&gt;Results&lt;/h3&gt;&#xd;
+&lt;p&gt;When Hudson reports success, this means that it ran to completion. You still need to look at build reports to identify if there are issues in your build. Post build reporting output is available in the following locations:&lt;/p&gt;&#xd;
+&lt;ol&gt;&#xd;
+&lt;li&gt;\output\logs\html\index.html&#xd;
+&lt;li&gt;\output\logs\analysis\&#xd;
+&lt;/ol&gt;</description>
+  <keepDependencies>false</keepDependencies>
+  <properties>
+    <hudson.model.ParametersDefinitionProperty>
+      <parameterDefinitions>
+        <hudson.model.StringParameterDefinition>
+          <name>SUBST_DRIVE</name>
+          <description>Subst&apos;d EPOC drive, containing
+&lt;li&gt;epoc32 folder
+&lt;li&gt;FBF maintools folder</description>
+          <defaultValue>M:</defaultValue>
+        </hudson.model.StringParameterDefinition>
+        <hudson.model.BooleanParameterDefinition>
+          <name>GET_PACKAGE_SOURCE</name>
+          <description>Clone the package from the web.
+&lt;li&gt;Replaces any existing source folder for this package
+&lt;li&gt;Requires HG_USERNAME and HG_PASSWORD</description>
+          <defaultValue>false</defaultValue>
+        </hudson.model.BooleanParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>HG_USERNAME</name>
+          <description>Enter your symbian developer web username &lt;i&gt;(required for download of packages from BOM)&lt;/i&gt;</description>
+          <defaultValue></defaultValue>
+        </hudson.model.StringParameterDefinition>
+        <hudson.model.PasswordParameterDefinition>
+          <name>HG_PASSWORD</name>
+          <description>Enter your Mercurial symbian developer web password  &lt;i&gt;(required for download of packages from BOM&lt;/i&gt;
+&lt;br&gt;</description>
+          <defaultValue></defaultValue>
+        </hudson.model.PasswordParameterDefinition>
+        <hudson.model.ChoiceParameterDefinition>
+          <name>CODELINE</name>
+          <description></description>
+          <choices class="java.util.Arrays$ArrayList">
+            <a class="string-array">
+              <string>Symbian2</string>
+              <string>Symbian3</string>
+              <string>CompilerCompatability</string>
+            </a>
+          </choices>
+        </hudson.model.ChoiceParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>PACKAGE</name>
+          <description>Layer and name of package e.g. os/kernelhwsrv</description>
+          <defaultValue></defaultValue>
+        </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>TARGET</name>
+          <description>Comma separated list of target(s) to build. Building armv5 targets requires RVCT arm compiler installed. e.g.
+&lt;br&gt;&lt;br&gt;
+&lt;li&gt;tools.whatlog,tools2.whatlog,winscw_udeb.whatlog
+&lt;li&gt;winscw_udeb.whatlog, armv5_urel.whatlog
+&lt;li&gt;armv5.whatlog,winscw.whatlog</description>
+          <defaultValue>winscw_udeb.whatlog</defaultValue>
+        </hudson.model.StringParameterDefinition>
+      </parameterDefinitions>
+    </hudson.model.ParametersDefinitionProperty>
+  </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>IF NOT &quot;%GET_PACKAGE_SOURCE%&quot;==&quot;true&quot; exit 0
+%SUBST_DRIVE%
+cd \
+@ECHO OFF
+IF NOT &quot;%HG_USERNAME%&quot; == &quot;&quot; GOTO USERNAME_OK
+@echo &quot;You must enter a UserName and Password &quot;
+exit 1
+:USERNAME_OK
+IF NOT &quot;%HG_PASSWORD%&quot; == &quot;&quot; GOTO HG_OK
+@echo &quot;You must enter a UserName and Password&quot;
+exit 1
+:HG_OK
+if exist sf\%PACKAGE% (
+    @ECHO ** Moving existing source for %PACKAGE% to %PACKAGE%.%BUILD_NUMBER%
+    move sf\%PACKAGE% sf\%PACKAGE%.%BUILD_NUMBER%
+)
+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 -filter %PACKAGE%</command>
+    </hudson.tasks.BatchFile>
+    <hudson.tasks.BatchFile>
+      <command>%SUBST_DRIVE%
+set HG_PASSWORD=
+cd maintools\sf-config
+hlm sf-build-noprep -Dbuild.drive=%SUBST_DRIVE% -Dsf.spec.job.number=%JOB_NAME%.%BUILD_NUMBER% -Dsf.spec.sbs.config=&quot;%TARGET%&quot; -Dsf.project.type=package -Dsf.subproject.path=%CODELINE%/%PACKAGE% -Dsf.spec.publish.enable=false </command>
+    </hudson.tasks.BatchFile>
+    <hudson.tasks.BatchFile>
+      <command>@ECHO **
+@ECHO ** Compile logs can be found in %SUBST_DRIVE%\output\logs\                          
+@ECHO ** Build summary can be found at %SUBST_DRIVE%\output\logs\html\index.htm 
+@ECHO **</command>
+    </hudson.tasks.BatchFile>
+  </builders>
+  <publishers/>
+  <buildWrappers/>
+  <customWorkspace>D:\</customWorkspace>
+</project>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FBF_PrepareEnvironment/config.xml	Tue Feb 02 20:27:18 2010 +0000
@@ -0,0 +1,126 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<project>
+  <actions/>
+  <description>&lt;img align=&quot;center&quot; src=&quot;http://developer.symbian.org/img/skin1209/header_bg.gif&quot; /&gt;&#xd;
+&lt;h3&gt;Description&lt;/h3&gt;&#xd;
+&lt;p&gt;&#xd;
+This project prepares a build environment that can be used by the &lt;b&gt;FBF_BuildPackage&lt;/b&gt; job for building packages (using the &lt;a href=&quot;http://developer.symbian.org/wiki/index.php/Build_machinery#Helium_.2F_Foundation_Build_Framework&quot;/&gt;Foundation Build Framework (Helium)&lt;/a&gt;). It has been tested against the Symbian^2 and Symbian^3 PDK.&#xd;
+&lt;/p&gt; &#xd;
+&#xd;
+&lt;h3&gt;Prerequisites&lt;/h3&gt;&#xd;
+&lt;ol&gt;&#xd;
+&lt;li&gt;Install the &lt;a href=&quot;http://developer.symbian.org/wiki/index.php/Product_Development_Toolkit_Quick_Start&quot;/&gt;PDT&lt;/a&gt; (build tools) and &lt;a href=&quot;http://downloads.sourceforge.net/sevenzip/7z465.exe&quot;/&gt;7-zip&lt;/a&gt;&lt;/li&gt;&#xd;
+&lt;li&gt;Download of &lt;a href=&quot;&#xd;
+http://developer.symbian.org/wiki/index.php/How_to_Build_a_Package#Getting_the_Baseline&quot;/&gt;required (and recommended) zips&lt;/a&gt; from the &#xd;
+&lt;a href=&quot;http://developer.symbian.org/main/tools_and_kits/downloads/view.php?id=1/&quot;&gt;Symbian^2&lt;/a&gt;, &lt;a href=&quot;http://developer.symbian.org/main/tools_and_kits/downloads/view.php?id=5/&quot;&gt;Symbian^3&lt;/a&gt; (or &lt;a href=&quot;http://developer.symbian.org/main/tools_and_kits/&quot;&gt;other&lt;/a&gt;) kits page.  &lt;/li&gt;&#xd;
+&lt;li&gt;If the package you are building is dependent on other source zips, then the corresponding source zip should also be downloaded. For example, if you want to build &lt;i&gt;os\emulatorbsp&lt;/i&gt; then you&apos;ll also need to have the &lt;i&gt;os\kernel&lt;/i&gt; source too, so you&apos;d copy &lt;i&gt;src_oss_os.zip&lt;/i&gt; into RELEASE_ZIP_LOCATION&lt;/li&gt;&#xd;
+&lt;/ol&gt;&#xd;
+&#xd;
+&#xd;
+&lt;h3&gt;Operation&lt;/h3&gt;&#xd;
+&lt;p&gt;The project:&lt;/p&gt;&#xd;
+&lt;ol&gt;&#xd;
+&lt;li&gt; Creates a unique folder in the specified physical BUILD_DRIVE, then subst it to the SUBST_DRIVE.&lt;/li&gt;&#xd;
+&lt;li&gt;Unpack zips provided in RELEASE_ZIP_LOCATION (including the binaries, tools, bill of materials (BOM), additional binaries (stuff that cant be re-built) and any available source into the root of SUBST_DRIVE drive. &lt;/li&gt;&#xd;
+&lt;li&gt;Copies the Foundation Build Framework (FBF) &apos;maintools&apos; folder into the subst&apos;d drive for later re-use.&lt;/li&gt;&#xd;
+&lt;/ol&gt;&#xd;
+</description>
+  <keepDependencies>false</keepDependencies>
+  <properties>
+    <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 drive to be used for the build area</description>
+          <defaultValue>M:</defaultValue>
+        </hudson.model.StringParameterDefinition>
+        <hudson.model.StringParameterDefinition>
+          <name>RELEASE_ZIP_LOCATION</name>
+          <description>Location where you&apos;ve stored the &lt;a href=&quot;
+http://developer.symbian.org/wiki/index.php/How_to_Build_a_Package#Getting_the_Baseline&quot;/&gt;release zipfiles&lt;/a&gt; (bin*.zip, build_BOM.zip, tools_epoc.zip)
+
+e.g. C:\downloads</description>
+          <defaultValue></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.
+&lt;li&gt;tip - is the latest revision from the web
+&lt;br&gt;&lt;br&gt;
+&lt;i&gt;Its recommended to use the tip revision, however allows a specific revision if needed&lt;/i&gt;
+</description>
+          <choices class="java.util.Arrays$ArrayList">
+            <a class="string-array">
+              <string>tip</string>
+              <string>PDK_2.0.2</string>
+              <string>PDK_2.0.1</string>
+              <string>PDK_2.0.0</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>
+  </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>%BUILD_DRIVE%
+cd\
+mkdir %TMP%\sf-bootstrap.%BUILD_NUMBER%
+cd /d %TMP%\sf-bootstrap.%BUILD_NUMBER%
+hg clone http://developer.symbian.org/oss/FCL/interim/fbf/bootstrap
+cd bootstrap
+hlm -f bootstrap.xml -Dsf.project.repo=https://developer.symbian.org/oss/FCL/interim/fbf/projects/packages/ -Dsf.config.repo=http://developer.symbian.org/oss/FCL/interim/fbf/configs/default -Dsf.target.dir=%TMP%\maintools_%BUILD_NUMBER% -Dsf.config.rev=%FBF_REV% -Dsf.project.rev=%FBF_REV%</command>
+    </hudson.tasks.BatchFile>
+    <hudson.tasks.BatchFile>
+      <command>%BUILD_DRIVE%
+cd\
+cd /d %TMP%\maintools_%BUILD_NUMBER%\sf-config
+hlm sf-prep -Dbuild.drive=%SUBST_DRIVE% -Dsf.spec.job.number=%BUILD_NUMBER% -Dsf.spec.baseline.location=%RELEASE_ZIP_LOCATION% -Dsf.spec.job.rootdir=%BUILD_DRIVE% -Dsf.suppress.buildenv.check=true -Dsf.suppress.drive.space.check=true -Dsf.project.type=package -Dsf.subproject.path=build -Dsf.spec.publish.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%\*bin*.zip %SUBST_DRIVE%\tmp
+copy %RELEASE_ZIP_LOCATION%\src_*.zip %SUBST_DRIVE%\tmp
+copy %RELEASE_ZIP_LOCATION%\tools_*.zip %SUBST_DRIVE%\tmp
+%SUBST_DRIVE%
+cd %SUBST_DRIVE%\tmp
+@ECHO ** Zip files available to unpack -
+dir
+@ECHO OFF
+7z x *.zip -o.. -y
+cd..
+7z x *.zip -y
+del *.zip
+exit 0</command>
+    </hudson.tasks.BatchFile>
+    <hudson.tasks.BatchFile>
+      <command>@ECHO Copying FBF tools to build drive, %SUBST_DRIVE%
+@ECHO OFF
+cd /d %TMP%
+xcopy /s /q maintools_%BUILD_NUMBER% %SUBST_DRIVE%\maintools\
+@ECHO ** Drive %SUBST_DRIVE% has been prepared. To reuse this area later, just re-subst it.</command>
+    </hudson.tasks.BatchFile>
+  </builders>
+  <publishers/>
+  <buildWrappers/>
+  <customWorkspace>D:\</customWorkspace>
+</project>
\ No newline at end of file
--- a/PKG_Helium/config.xml	Thu Jan 21 11:06:05 2010 +1100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<project>
-  <actions/>
-  <description>&lt;h3&gt;Description&lt;/h3&gt;&#xd;
-&lt;li&gt;The project will (re)build a specified package against the Symbian^2 or Symbian^3 Platform from source.&#xd;
-&lt;li&gt;The project will unzip any available source plus take source of the specified package from the web at the correct revision.&#xd;
-&lt;br&gt;&lt;br&gt;&#xd;
-The Foundation Build Framework (FBF) is an Apache ANT-like configuration that can be used with the Helium tool, delivered in the &lt;a href=&quot;https://developer.symbian.org/main/tools_and_kits/downloads/view.php?id=4&quot;/&gt;PDT&lt;/a&gt;.&#xd;
-&#xd;
-&lt;h3&gt;Prerequisites&lt;/h3&gt;&#xd;
-&lt;li&gt;Installation of mandatory &lt;a href=&quot;http://developer.symbian.org/wiki/index.php/How_to_Build_a_Package#Installing_Build_Tools&quot;/&gt;build tools&lt;/a&gt;&#xd;
-&lt;li&gt;Download of required (and recommended) &lt;a href=&quot;&#xd;
-http://developer.symbian.org/wiki/index.php/How_to_Build_a_Package#Getting_the_Baseline&quot;/&gt;zips &lt;/a&gt; from the &lt;a href=&quot;http://developer.symbian.org/main/tools_and_kits/&quot;&gt;kits page.&lt;/a&gt;&#xd;
-&#xd;
-&lt;h3&gt;Additional Information&lt;/h3&gt;&#xd;
-Source for the FBF can be downloaded from the following Mercurial Repositories -&#xd;
-&lt;br&gt;&#xd;
-&lt;li&gt;FBF Configuration - &lt;a href=&quot;https://developer.symbian.org/oss/FCL/interim/fbf/configs/default/&quot;/&gt;https://developer.symbian.org/oss/FCL/interim/fbf/configs/default/&lt;/a&gt;&#xd;
-&lt;li&gt;FBF Package Projects - &lt;a href=&quot;https://developer.symbian.org/oss/FCL/interim/fbf/projects/packages&quot;/&gt;https://developer.symbian.org/oss/FCL/interim/fbf/projects/packages&lt;/a&gt;&#xd;
-&lt;li&gt;FBF Bootstrap - &lt;a href=&quot;https://developer.symbian.org/oss/FCL/interim/fbf/bootstrap&quot;/&gt;https://developer.symbian.org/oss/FCL/interim/fbf/bootstrap&lt;/a&gt;&#xd;
-</description>
-  <keepDependencies>false</keepDependencies>
-  <properties>
-    <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&apos;d EPOC drive</description>
-          <defaultValue>M:</defaultValue>
-        </hudson.model.StringParameterDefinition>
-        <hudson.model.StringParameterDefinition>
-          <name>RELEASE_ZIP_LOCATION</name>
-          <description>Location of &lt;a href=&quot;http://developer.symbian.org/main/tools_and_kits/&quot;&gt;release zipfiles&lt;/a&gt; 
-&lt;li&gt;build_BOM.zip
-&lt;li&gt;tools_epoc.zip
-
-e.g. C:\downloads</description>
-          <defaultValue></defaultValue>
-        </hudson.model.StringParameterDefinition>
-        <hudson.model.StringParameterDefinition>
-          <name>HG_USERNAME</name>
-          <description>Enter your symbian developer web username &lt;i&gt;(required for download of packages from BOM, not needed when using source zip packages)&lt;/i&gt;</description>
-          <defaultValue></defaultValue>
-        </hudson.model.StringParameterDefinition>
-        <hudson.model.PasswordParameterDefinition>
-          <name>HG_PASSWORD</name>
-          <description>Enter your Mercurial symbian developer web password  &lt;i&gt;(required for download of packages from BOM, not needed when using source zip packages)&lt;/i&gt;
-&lt;br&gt;</description>
-          <defaultValue></defaultValue>
-        </hudson.model.PasswordParameterDefinition>
-        <hudson.model.ChoiceParameterDefinition>
-          <name>FBF_REV</name>
-          <description>The tagged version of the FBF (Helium) to use to build the Platform.
-&lt;li&gt;tip - is the latest revision from the web
-&lt;br&gt;&lt;br&gt;
-&lt;i&gt;Unless you want the latest changes, its recommended to use the revision that matches the build_BOM.zip downloaded&lt;/i&gt;
-</description>
-          <choices class="java.util.Arrays$ArrayList">
-            <a class="string-array">
-              <string>tip</string>
-              <string>PDK_2.0.2</string>
-              <string>PDK_2.0.1</string>
-              <string>PDK_2.0.0</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>
-        <hudson.model.ChoiceParameterDefinition>
-          <name>CODELINE</name>
-          <description></description>
-          <choices class="java.util.Arrays$ArrayList">
-            <a class="string-array">
-              <string>Symbian2</string>
-              <string>Symbian3</string>
-              <string>CompilerCompatability</string>
-            </a>
-          </choices>
-        </hudson.model.ChoiceParameterDefinition>
-        <hudson.model.StringParameterDefinition>
-          <name>PACKAGE</name>
-          <description>Layer and name of package e.g. os/kernelhwsrv</description>
-          <defaultValue></defaultValue>
-        </hudson.model.StringParameterDefinition>
-        <hudson.model.StringParameterDefinition>
-          <name>TARGET</name>
-          <description>Comma separated list of target(s) to build. Building armv5 targets requires RVCT arm compiler installed. e.g.
-&lt;br&gt;&lt;br&gt;
-&lt;li&gt;tools.whatlog,tools2.whatlog,winscw_udeb.whatlog
-&lt;li&gt;winscw_udeb.whatlog, armv5_urel.whatlog
-&lt;li&gt;armv5.whatlog,winscw.whatlog</description>
-          <defaultValue>winscw_udeb.whatlog</defaultValue>
-        </hudson.model.StringParameterDefinition>
-        <hudson.model.BooleanParameterDefinition>
-          <name>COMPILE_ONLY</name>
-          <description>Compile just the package. &lt;b&gt;Tick if -&lt;/b&gt;
-
-&lt;li&gt; the build environment on the drive specified has been prepared already.</description>
-          <defaultValue>false</defaultValue>
-        </hudson.model.BooleanParameterDefinition>
-      </parameterDefinitions>
-    </hudson.model.ParametersDefinitionProperty>
-  </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>IF &quot;%COMPILE_ONLY%&quot;==&quot;true&quot; exit 0
-%BUILD_DRIVE%
-cd\
-mkdir %TMP%\sf-bootstrap.%BUILD_NUMBER%
-cd /d %TMP%\sf-bootstrap.%BUILD_NUMBER%
-hg clone http://developer.symbian.org/oss/FCL/interim/fbf/bootstrap
-cd bootstrap
-hlm -f bootstrap.xml -Dsf.project.repo=https://developer.symbian.org/oss/FCL/interim/fbf/projects/packages/ -Dsf.config.repo=http://developer.symbian.org/oss/FCL/interim/fbf/configs/default -Dsf.target.dir=%TMP%\maintools_%JOB_NAME%.%BUILD_NUMBER% -Dsf.config.rev=%FBF_REV% -Dsf.project.rev=%FBF_REV%</command>
-    </hudson.tasks.BatchFile>
-    <hudson.tasks.BatchFile>
-      <command>IF &quot;%COMPILE_ONLY%&quot;==&quot;true&quot; exit 0
-%BUILD_DRIVE%
-set HG_PASSWORD=
-cd\
-cd /d %TMP%\maintools_%JOB_NAME%.%BUILD_NUMBER%\sf-config
-hlm sf-prep -Dbuild.drive=%SUBST_DRIVE% -Dsf.spec.job.number=%JOB_NAME%.%BUILD_NUMBER% -Dsf.spec.sbs.config=&quot;%TARGET%&quot; -Dsf.spec.baseline.location=%RELEASE_ZIP_LOCATION% -Dsf.spec.job.rootdir=%BUILD_DRIVE% -Dsf.suppress.buildenv.check=true -Dsf.suppress.drive.space.check=true -Dsf.project.type=package -Dsf.subproject.path=%CODELINE%/%PACKAGE% -Dsf.spec.publish.enable=false</command>
-    </hudson.tasks.BatchFile>
-    <hudson.tasks.BatchFile>
-      <command>exit 0
-IF &quot;%COMPILE_ONLY%&quot;==&quot;true&quot; exit 0
-%BUILD_DRIVE%
-set HG_PASSWORD=
-cd\
-cd /d %TMP%\maintools_%JOB_NAME%.%BUILD_NUMBER%\sf-config
-hlm sf-getenvs -Dbuild.drive=%SUBST_DRIVE% -Dsf.spec.job.number=%JOB_NAME%.%BUILD_NUMBER% -Dsf.spec.sbs.config=&quot;%TARGET%&quot; -Dsf.spec.baseline.location=%RELEASE_ZIP_LOCATION% -Dsf.spec.job.rootdir=%BUILD_DRIVE% -Dsf.suppress.buildenv.check=true -Dsf.suppress.drive.space.check=true -Dsf.project.type=package -Dsf.subproject.path=%CODELINE%/%PACKAGE% -Dsf.spec.publish.enable=false -Dsf.spec.baseline.getenv_options=&quot;-I rnd -I info -k&quot;
-exit 0</command>
-    </hudson.tasks.BatchFile>
-    <hudson.tasks.BatchFile>
-      <command>rem exit 0
-IF &quot;%COMPILE_ONLY%&quot;==&quot;true&quot; exit 0
-%SUBST_DRIVE%
-cd\
-mkdir tmp
-copy %RELEASE_ZIP_LOCATION%\build_BOM.zip %SUBST_DRIVE%\tmp
-copy %RELEASE_ZIP_LOCATION%\*bin*.zip %SUBST_DRIVE%\tmp
-copy %RELEASE_ZIP_LOCATION%\src_*.zip %SUBST_DRIVE%\tmp
-copy %RELEASE_ZIP_LOCATION%\tools_*.zip %SUBST_DRIVE%\tmp
-%SUBST_DRIVE%
-cd %SUBST_DRIVE%\tmp
-dir
-@ECHO OFF
-7z x *.zip -o.. -y
-cd..
-7z x *.zip -y
-del *.zip
-exit 0</command>
-    </hudson.tasks.BatchFile>
-    <hudson.tasks.BatchFile>
-      <command>IF &quot;%COMPILE_ONLY%&quot;==&quot;true&quot; exit 0
-%SUBST_DRIVE%
-cd \
-@ECHO OFF
-IF NOT &quot;%HG_USERNAME%&quot; == &quot;&quot; GOTO USERNAME_OK
-echo &quot;You must enter a UserName and Password &quot;
-exit 1
-:USERNAME_OK
-IF NOT &quot;%HG_PASSWORD%&quot; == &quot;&quot; GOTO HG_OK
-echo &quot;You must enter a UserName and Password&quot;
-exit 1
-:HG_OK
-if exist sf\%PACKAGE% (
-    ECHO Moving zip source of %PACKAGE% to %PACKAGE%.PDK
-    move sf\%PACKAGE% sf\%PACKAGE%.PDK
-)
-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 -filter %PACKAGE%</command>
-    </hudson.tasks.BatchFile>
-    <hudson.tasks.BatchFile>
-      <command>IF &quot;%COMPILE_ONLY%&quot;==&quot;true&quot; exit 0
-%BUILD_DRIVE%
-set HG_PASSWORD=
-cd /d %TMP%\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.sbs.config=&quot;%TARGET%&quot; -Dsf.spec.baseline.location=%RELEASE_ZIP_LOCATION% -Dsf.spec.job.rootdir=%BUILD_DRIVE% -Dsf.suppress.buildenv.check=true -Dsf.suppress.drive.space.check=true -Dsf.project.type=package -Dsf.subproject.path=%CODELINE%/%PACKAGE% -Dsf.spec.publish.enable=false </command>
-    </hudson.tasks.BatchFile>
-    <hudson.tasks.BatchFile>
-      <command>IF &quot;%COMPILE_ONLY%&quot;==&quot;true&quot; exit 0
-ECHO Copying FBF tools to build drive, %SUBST_DRIVE%
-@ECHO OFF
-cd /d %TMP%
-xcopy /s /q maintools_%JOB_NAME%.%BUILD_NUMBER% %SUBST_DRIVE%\maintools\</command>
-    </hudson.tasks.BatchFile>
-    <hudson.tasks.BatchFile>
-      <command>IF NOT &quot;%COMPILE_ONLY%&quot;==&quot;true&quot; exit 0
-%SUBST_DRIVE%
-set HG_PASSWORD=
-cd maintools\sf-config
-hlm sf-build-noprep -Dbuild.drive=%SUBST_DRIVE% -Dsf.spec.job.number=%JOB_NAME%.%BUILD_NUMBER% -Dsf.spec.sbs.config=&quot;%TARGET%&quot; -Dsf.spec.job.rootdir=%BUILD_DRIVE% -Dsf.project.type=package -Dsf.subproject.path=%CODELINE%/%PACKAGE% -Dsf.spec.publish.enable=false </command>
-    </hudson.tasks.BatchFile>
-  </builders>
-  <publishers/>
-  <buildWrappers/>
-  <customWorkspace>D:\</customWorkspace>
-</project>
\ No newline at end of file