Merge templates for Tests Guidelines (http://developer.symbian.org/wiki/index.php/Guidelines_for_Package_Test_Organisation) created by TWG.
--- a/common/build.postbuild.xml Tue Jul 20 23:33:58 2010 +0100
+++ b/common/build.postbuild.xml Tue Aug 10 19:43:50 2010 +0100
@@ -335,7 +335,11 @@
<arg value="-x!epoc32\gcc_mingw"/>
<arg value="-x!epoc32\tools"/>
<arg value="-x!epoc32\data\buildinfo.txt"/>
+ <!-- Feature database artifacts released as part of the tools zip -->
<arg value="-x!epoc32\data\config\features.dat"/>
+ <arg value="-x!epoc32\include\featureuids.h"/>
+ <arg value="-x!epoc32\rom\include\feature.iby"/>
+ <arg value="-x!epoc32\rom\include\featuredatabase.xml"/>
<arg value="-x!epoc32\data\media"/> <!-- Files created when emulator is used to create comms database - not worth releasing-->
<arg value="-x!epoc32\build"/>
<arg value="-x!epoc32\release\armv5"/>
@@ -356,6 +360,7 @@
<arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
<arg value="-x@output/temp_build_files/manifest_excludelist.txt"/>
<arg value="-x@${sf.spec.prebuilt.excludelist}"/>
+ <arg value="-x!epoc32/include/featureuids.h"/> <!-- This needs to come from the tools zip instead -->
<arg value="${build.drive}/output/zips/release/binaries_epoc_sdk.zip"/>
</exec>
<!-- Check that all the files we want in the SDK are zipped -->
@@ -470,6 +475,9 @@
<arg value="epoc32/gcc_mingw"/>
<arg value="epoc32/data/buildinfo.txt"/>
<arg value="epoc32/data/config/features.dat"/>
+ <arg value="epoc32/include/featureuids.h"/>
+ <arg value="epoc32/rom/include/feature.iby"/>
+ <arg value="epoc32/rom/include/featuredatabase.xml"/>
</exec>
<antcall target="sf-zip-content">
<param name="zip.config.file" value="${temp.build.dir}/zip.cfg.xml.ftl"/>
@@ -890,28 +898,28 @@
</zip>
<!-- workaround for the time when when 'sf-run-analysis-raptor' has not been run -->
<mkdir dir="${build.drive}/output/logs/releaseables"/>
- <if>
- <available file="${build.drive}/output/logs/package_definitions" type="dir"/>
- <then>
- <zip destfile="${build.output.dir}/zips/release/build_BOM.zip">
- <zipfileset dir="${build.drive}/output/logs/BOM" prefix="build_info/logs/BOM"/>
- <zipfileset dir="${build.drive}/output/logs/releaseables" prefix="build_info/logs/releaseables"/>
- <zipfileset dir="${build.drive}/output/logs" prefix="build_info/logs/BOM">
- <include name="envinfo.txt"/>
- </zipfileset>
- <zipfileset dir="${build.drive}/output/logs/package_definitions" prefix="build_info/package_definitions"/>
- </zip>
- </then>
- <else>
- <zip destfile="${build.output.dir}/zips/release/build_BOM.zip">
- <zipfileset dir="${build.drive}/output/logs/BOM" prefix="build_info/logs/BOM"/>
- <zipfileset dir="${build.drive}/output/logs/releaseables" prefix="build_info/logs/releaseables"/>
- <zipfileset dir="${build.drive}/output/logs" prefix="build_info/logs/BOM">
- <include name="envinfo.txt"/>
- </zipfileset>
- </zip>
- </else>
- </if>
+ <if>
+ <available file="${build.drive}/output/logs/package_definitions" type="dir"/>
+ <then>
+ <zip destfile="${build.output.dir}/zips/release/build_BOM.zip">
+ <zipfileset dir="${build.drive}/output/logs/BOM" prefix="build_info/logs/BOM"/>
+ <zipfileset dir="${build.drive}/output/logs/releaseables" prefix="build_info/logs/releaseables"/>
+ <zipfileset dir="${build.drive}/output/logs" prefix="build_info/logs/BOM">
+ <include name="envinfo.txt"/>
+ </zipfileset>
+ <zipfileset dir="${build.drive}/output/logs/package_definitions" prefix="build_info/package_definitions"/>
+ </zip>
+ </then>
+ <else>
+ <zip destfile="${build.output.dir}/zips/release/build_BOM.zip">
+ <zipfileset dir="${build.drive}/output/logs/BOM" prefix="build_info/logs/BOM"/>
+ <zipfileset dir="${build.drive}/output/logs/releaseables" prefix="build_info/logs/releaseables"/>
+ <zipfileset dir="${build.drive}/output/logs" prefix="build_info/logs/BOM">
+ <include name="envinfo.txt"/>
+ </zipfileset>
+ </zip>
+ </else>
+ </if>
<antcall target="sf-zip-content">
<param name="zip.config.file" value="${temp.build.dir}/zip.cfg.xml.ftl"/>
<param name="zip.target.name" value="info-just-metadata" />
@@ -1060,13 +1068,27 @@
</target>
<target name="sf-build-roms">
- <if>
- <istrue value="${sf.spec.referenceroms.createimages.enable}" />
- <then>
- <echo message="INFO Building iMaker configurations"/>
- <runtarget target="build-roms"/>
- </then>
- </if>
+ <!-- find out if this is an arm build, if it is, then build roms -->
+ <propertyregex property="sf.is.arm.build" override="true" input="${sf.spec.sbs.config}" regexp="(arm.*)" replace="true" casesensitive="false"/>
+
+ <if><isset property="sf.is.arm.build"/>
+ <then>
+ <mkdir dir="${roms.log.dir}"/>
+ <echo message="INFO Building Syborg MiniGUI stripped ROM"/>
+ <exec executable="cmd" dir="${build.drive}/epoc32/rom" failonerror="false">
+ <arg value="/c"/>
+ <arg value="buildrom syborg minigui-stripped"/>
+ </exec>
+ <if>
+ <!-- is iMaker rom building enabled? -->
+ <istrue value="${sf.spec.referenceroms.createimages.enable}" />
+ <then>
+ <echo message="INFO Building iMaker configurations"/>
+ <runtarget target="build-roms"/>
+ </then>
+ </if>
+ </then>
+ </if>
</target>
<!-- Transform BRAG xslt and display status at the end of the build -->
@@ -1074,21 +1096,21 @@
<delete dir="${build.drive}/output/logs/summary/">
<include name="**/*.html"/>
</delete>
- <xslt basedir="${build.drive}/output/logs/summary" destdir="${temp.build.dir}" extension=".html" style="brag.xsl"/>
+ <xslt basedir="${build.drive}/output/logs/summary" destdir="${temp.build.dir}" extension=".html" style="brag.xsl"/>
<loadfile srcFile="${temp.build.dir}/_BRAG.html" property="sf.brag.status">
<filterchain>
<linecontainsregexp>
<regexp pattern="(BLACK|RED|AMBER|GREEN)"/>
</linecontainsregexp>
- <trim/>
+ <trim/>
<striplinebreaks/>
<deletecharacters chars="\>\<\h2\h1\/"/>
</filterchain>
- </loadfile>
+ </loadfile>
<echo message="BRAG STATUS: [${sf.brag.status}] - full build details available at ${build.drive}\output\logs\summary\_BRAG.xml"/>
<!-- record brag information in BIT file -->
<echo message="build_brag	${sf.brag.status}${line.separator}" file="${build.log.dir}/bitinfo.txt" append="true"/>
- </target>
+ </target>
</project>
--- a/common/build.xml Tue Jul 20 23:33:58 2010 +0100
+++ b/common/build.xml Tue Aug 10 19:43:50 2010 +0100
@@ -128,8 +128,9 @@
<!-- configure stages -->
<hlm:stage id="preparation" starttarget="sf-prebuild" endtarget="sf-prebuild"/>
<hlm:stage id="compilation" starttarget="sf-compile" endtarget="sf-compile"/>
+ <hlm:stage id="romcreation" starttarget="sf-build-roms" endtarget="sf-build-roms"/>
<hlm:stage id="postbuild" starttarget="sf-postbuild" endtarget="sf-postbuild"/>
-
+
</then>
</if>
@@ -475,24 +476,28 @@
<target name="sf-get-source" depends="sf-generate-source-spec">
<stopwatch name="sf-get-source"/>
- <!-- Get test manifest, and move resolved csv so that it doesnt conflict with source-spec.ant.xml -->
<if>
- <istrue value="${sf.spec.smoketest.enable}"/>
+ <istrue value="${sf.spec.sourcesync.enable}"/>
<then>
- <ant antfile="${temp.build.dir}/source-test-spec.ant.xml" />
- <move file="${build.drive}/output/logs/BOM/sources.csv" tofile="${build.drive}/output/logs/BOM/sources_test.csv"/>
+ <!-- Get test manifest, and move resolved csv so that it doesnt conflict with source-spec.ant.xml -->
+ <if>
+ <available file="${temp.build.dir}/source-test-spec.ant.xml"/>
+ <then>
+ <ant antfile="${temp.build.dir}/source-test-spec.ant.xml" />
+ <move file="${build.drive}/output/logs/BOM/sources.csv" tofile="${build.drive}/output/logs/BOM/sources_test.csv"/>
+ </then>
+ </if>
+
+ <if><available file="${temp.build.dir}/source-rnd-spec.ant.xml"/>
+ <then>
+ <ant antfile="${temp.build.dir}/source-rnd-spec.ant.xml" />
+ <move file="${build.drive}/output/logs/BOM/sources.csv" tofile="${build.drive}/output/logs/BOM/sources_rnd.csv"/>
+ </then>
+ </if>
+
+ <ant antfile="${temp.build.dir}/source-spec.ant.xml" />
</then>
</if>
-
-
- <if><available file="${temp.build.dir}/source-rnd-spec.ant.xml"/>
- <then>
- <ant antfile="${temp.build.dir}/source-rnd-spec.ant.xml" />
- <move file="${build.drive}/output/logs/BOM/sources.csv" tofile="${build.drive}/output/logs/BOM/sources_rnd.csv"/>
- </then>
- </if>
-
- <ant antfile="${temp.build.dir}/source-spec.ant.xml" />
<stopwatch name="sf-get-source" action="elapsed"/>
</target>
@@ -534,29 +539,23 @@
<!-- TODO: 2. Change fmpp data to be a full property rather than relative path -->
<delete file="${temp.build.dir}/source-spec.ant.xml"/>
- <property name="sf.test.csv.file" value="nul:"/>
-
- <if>
- <istrue value="${sf.spec.sourcesync.enable}" />
+ <property name="sf.source.csv.file" value="${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}"/>
+ <if><available file="${sf.source.csv.file}"/>
<then>
- <property name="sf.source.csv.file" value="${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}"/>
- <property name="sf.source_rnd.csv.file" value="${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile.rnd}"/>
+ <fmpp sourceFile="${sf.common.config.dir}/templates/source-spec.ant.xml.ftl"
+ outputFile="${temp.build.dir}/source-spec.ant.xml">
+ <data expandProperties="yes">
+ ant: antProperties()
+ data: [
+ csv(${sf.source.csv.file}, {separator:','})
+ ]
+ </data>
+ </fmpp>
</then>
</if>
- <property name="sf.source.csv.file" value="nul:"/>
- <property name="sf.source_rnd.csv.file" value="nul:"/>
- <fmpp sourceFile="${sf.common.config.dir}/templates/source-spec.ant.xml.ftl"
- outputFile="${temp.build.dir}/source-spec.ant.xml">
- <data expandProperties="yes">
- ant: antProperties()
- data: [
- csv(${sf.source.csv.file}, {separator:','})
- ]
- </data>
- </fmpp>
-
- <if><available file="${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile.rnd}"/>
+ <property name="sf.source_rnd.csv.file" value="${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile.rnd}"/>
+ <if><available file="${sf.source_rnd.csv.file}"/>
<then>
<fmpp sourceFile="${sf.common.config.dir}/templates/source-spec.ant.xml.ftl"
outputFile="${temp.build.dir}/source-rnd-spec.ant.xml">
@@ -569,8 +568,10 @@
</fmpp>
</then>
</if>
+
+ <property name="sf.test.csv.file" value="nul:"/>
<if>
- <istrue value="${sf.spec.smoketest.enable}"/>
+ <available file="${sf.test.csv.file}"/>
<then>
<fmpp sourceFile="${sf.common.config.dir}/templates/source-spec.ant.xml.ftl"
outputFile="${temp.build.dir}/source-test-spec.ant.xml">
@@ -713,21 +714,21 @@
</target>
<target name="sf-preprocess-package-config">
- <!-- preprocess by stripping the header of the rnd source and concat with sources.csv -->
- <loadfile srcfile="${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile.rnd}" property="rnd.source.no.header" failonerror="false">
- <filterchain>
- <headfilter skip="1"/>
- </filterchain>
- </loadfile>
- <echo message="${rnd.source.no.header}" file="${temp.build.dir}/sources_rnd_no_header.csv"/>
-
- <!-- order is important as the rnd source now has no header -->
- <concat destfile="${temp.build.dir}/sources.csv" force="yes">
- <file file="${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}"/>
- <file file="${temp.build.dir}/sources_rnd_no_header.csv"/>
- </concat>
+ <!-- preprocess by stripping the header of the rnd source and concat with sources.csv -->
+ <loadfile srcfile="${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile.rnd}" property="rnd.source.no.header" failonerror="false">
+ <filterchain>
+ <headfilter skip="1"/>
+ </filterchain>
+ </loadfile>
+ <echo message="${rnd.source.no.header}" file="${temp.build.dir}/sources_rnd_no_header.csv"/>
- <echo message="${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}"/>
+ <!-- order is important as the rnd source now has no header -->
+ <concat destfile="${temp.build.dir}/sources.csv" force="yes">
+ <file file="${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}"/>
+ <file file="${temp.build.dir}/sources_rnd_no_header.csv"/>
+ </concat>
+
+ <echo message="${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}"/>
<exec executable="perl" dir="${build.drive}/" failonerror="false" output="${build.log.dir}/zipconfig.log">
<arg value="${sf.common.config.dir}/tools/populateziptemplate.pl"/>
<arg value="${temp.build.dir}/sources.csv"/>
@@ -821,7 +822,7 @@
<!-- Unpack the rnd zips ready to be used in the build -->
<target name="sf-unpack-rnd">
<echo message="INFO Unpacking any available RnD binaries"/>
- <mkdir dir="${build.drive}/output/zips/"/>
+ <mkdir dir="${build.drive}/output/zips/"/>
<for param="rndZip">
<fileset dir="${build.drive}/output/zips/">
<include name="binaries_*.zip"/> <!-- Internal rnd bins -->
--- a/common/templates/run-qmake.ant.xml.ftl Tue Jul 20 23:33:58 2010 +0100
+++ b/common/templates/run-qmake.ant.xml.ftl Tue Aug 10 19:43:50 2010 +0100
@@ -1,116 +1,107 @@
<?xml version="1.0"?>
<project name="run-qmake" default="all">
- <target name="all">
+ <target name="all" depends="sf-build-qmake,sf-build-qtextension-tools,sf-configure-orbit,sd-qmake-all-profiles"/>
<!-- Qmake needs to have been built in this environment, to generate bld.infs to built Qt itself.
Qmake.exe only exists in the source tree if its been built -->
-
- <if><not><available file="${r'$'}{build.drive}/sf/mw/qt/bin/qmake.exe" type="file"/></not>
- <then>
- <sequential>
- <#list data["//unit/@bldFile/.."] as unit>
- <#if (unit.@bldFile=="/sf/mw/qt/src/s60installs/deviceconfiguration")>
- <echo>INFO: Building and configuring qmake for ${unit.@bldFile}</echo>
- <if>
- <available file="${r'$'}{build.drive}/${unit.@bldFile}" type="dir"/>
- <then>
- <exec executable="cmd" dir="${r'$'}{build.drive}/${unit.@bldFile}" failonerror="false">
- <arg value="/C"/>
- <arg line="sbs -c tools2 -j 4 --logfile=${r'$'}{build.drive}/output/logs/${ant['build.id']}_compile_qmake.log"/>
- </exec>
- </then>
- <else>
- <echo message="ERROR: Directory ${r'$'}{build.drive}/${unit.@bldFile} doesn't exist."/>
- <fail message="Unit /sf/mw/qt/src/s60installs/deviceconfiguration is in the model, but not present on disk. Cannot build qmake!"/>
- </else>
- </if>
- </#if>
- </#list>
- </sequential>
- </then>
- </if>
- <sequential>
+ <target name="sf-build-qmake">
+ <if><not><available file="${r'$'}{build.drive}/sf/mw/qt/bin/qmake.exe" type="file"/></not>
+ <then>
+ <sequential>
+ <#list data["//unit[@bldFile = '/sf/mw/qt/src/s60installs/deviceconfiguration']"] as unit>
+ <echo>INFO: Building and configuring qmake for ${unit.@bldFile}</echo>
+ <if>
+ <available file="${r'$'}{build.drive}${unit.@bldFile}" type="dir"/>
+ <then>
+ <exec executable="cmd" dir="${r'$'}{build.drive}${unit.@bldFile}" failonerror="false">
+ <arg value="/C"/>
+ <arg line="sbs -c tools2 -j 4 --logfile=${r'$'}{build.drive}/output/logs/${ant['build.id']}_compile_qmake.log"/>
+ </exec>
+ </then>
+ <else>
+ <echo message="ERROR: Directory ${r'$'}{build.drive}${unit.@bldFile} doesn't exist."/>
+ <fail message="Unit /sf/mw/qt/src/s60installs/deviceconfiguration is in the model, but not present on disk. Cannot build qmake!"/>
+ </else>
+ </if>
+ </#list>
+ </sequential>
+ </then>
+ </if>
+ </target>
- <#list data["//unit/@bldFile/.."] as unit>
- <#if (unit.@bldFile=="/sf/mw/qtextensions/group")>
- <echo>INFO: Configuring qtextensions for ${unit.@bldFile}</echo>
- <if>
- <available file="${r'$'}{build.drive}/${unit.@bldFile}" type="dir"/>
- <then>
- <exec executable="cmd" dir="${r'$'}{build.drive}/${unit.@bldFile}" failonerror="false">
- <arg value="/C"/>
- <arg line="sbs -c tools2 -j 4 --logfile=${r'$'}{build.drive}/output/logs/${ant['build.id']}_compile_qtextensions.log"/>
- </exec>
- </then>
- <else>
- <echo message="ERROR: Directory ${r'$'}{build.drive}/${unit.@bldFile} doesn't exist."/>
- </else>
- </if>
- </#if>
- </#list>
- </sequential>
-
+ <target name="sf-build-qtextension-tools">
+ <sequential>
+ <#list data["//unit[@bldFile = '/sf/mw/qtextensions/group']"] as unit>
+ <echo>INFO: Configuring qtextensions for ${unit.@bldFile}</echo>
+ <if>
+ <available file="${r'$'}{build.drive}${unit.@bldFile}" type="dir"/>
+ <then>
+ <exec executable="cmd" dir="${r'$'}{build.drive}${unit.@bldFile}" failonerror="false">
+ <arg value="/C"/>
+ <arg line="sbs -c tools2 -j 4 --logfile=${r'$'}{build.drive}/output/logs/${ant['build.id']}_compile_qtextensions.log"/>
+ </exec>
+ </then>
+ <else>
+ <echo message="ERROR: Directory ${r'$'}{build.drive}${unit.@bldFile} doesn't exist."/>
+ </else>
+ </if>
+ </#list>
+ </sequential>
+ </target>
+
+ <target name="sf-configure-orbit">
+ <sequential>
+ <#list data["//unit[@proFile = 'hb.pro']"] as unit>
+ <echo>Running configure.py for ${unit.@bldFile}/${unit.@proFile}</echo>
+ <if>
+ <available file="${r'$'}{build.drive}${unit.@bldFile}" type="dir"/>
+ <then>
+ <exec executable="cmd" dir="${r'$'}{build.drive}${unit.@bldFile}" failonerror="false" output="${r'$'}{build.drive}/output/logs/${ant['build.id']}_compile_hb_configure.log">
+ <arg value="/C"/>
+ <arg value="python"/>
+ <arg line ="configure.py --qmake-spec=symbian-sbsv2 --platform=symbian --qmake-options=MMP_RULES+=EXPORTUNFROZEN CONFIG+=sgimagelite_support DEFINES+=HB_EFFECTS_OPENVG DEFINES+=HB_FILTER_EFFECTS"/>
+ </exec>
+
+ <echo>INFO: Exporting Orbit mkspecs to epoc32\tools for ${unit.@bldFile}/${unit.@proFile}</echo>
+ <echo>INFO: Running Orbit theme installer, make install step</echo>
+ <exec executable="cmd" dir="${r'$'}{build.drive}${unit.@bldFile}" failonerror="false" output="${r'$'}{build.drive}/output/logs/${ant['build.id']}_install_hb_configure.log">
+ <arg value="/C"/>
+ <arg value="make install"/>
+ </exec>
+ </then>
+ <else>
+ <echo message="ERROR: Directory ${r'$'}{build.drive}${unit.@bldFile} doesn't exist."/>
+ </else>
+ </if>
+ </#list>
+ </sequential>
+ </target>
+
+ <target name="sd-qmake-all-profiles">
+ <parallel threadCount="${r'$'}{number.of.threads}">
+ <#list data["//unit[@proFile != 'hb.pro']"] as unit>
<sequential>
- <#list data["//unit/@proFile/.."] as unit>
- <#if (unit.@proFile=="hb.pro")>
- <echo>Running configure.py for ${unit.@bldFile}/${unit.@proFile}</echo>
- <if>
- <available file="${r'$'}{build.drive}/${unit.@bldFile}" type="dir"/>
- <then>
- <exec executable="cmd" dir="${r'$'}{build.drive}/${unit.@bldFile}" failonerror="false" output="${r'$'}{build.drive}/output/logs/${ant['build.id']}_compile_hb_configure.log">
- <arg value="/C"/>
- <arg value="python"/>
- <arg line ="configure.py --qmake-spec=symbian-sbsv2 --platform=symbian --qmake-options=MMP_RULES+=EXPORTUNFROZEN CONFIG+=sgimagelite_support DEFINES+=HB_EFFECTS_OPENVG DEFINES+=HB_FILTER_EFFECTS"/>
- </exec>
-
- <echo>INFO: Exporting Orbit mkspecs to epoc32\tools for ${unit.@bldFile}/${unit.@proFile}</echo>
- <echo>INFO: Running Orbit theme installer, make install step</echo>
- <exec executable="cmd" dir="${r'$'}{build.drive}/${unit.@bldFile}" failonerror="false" output="${r'$'}{build.drive}/output/logs/${ant['build.id']}_install_hb_configure.log">
- <arg value="/C"/>
- <arg value="make install"/>
- </exec>
- </then>
- <else>
- <echo message="ERROR: Directory ${r'$'}{build.drive}/${unit.@bldFile} doesn't exist."/>
- </else>
- </if>
- </#if>
- </#list>
-
- </sequential>
-
- <parallel threadCount="${r'$'}{number.of.threads}">
- <#list data["//unit/@proFile/.."] as unit>
- <sequential>
-
- <#if (unit.@proFile!="hb.pro")>
-
<echo>Running qmake for ${unit.@bldFile}/${unit.@proFile}</echo>
<if>
- <available file="${r'$'}{build.drive}/${unit.@bldFile}" type="dir"/>
+ <available file="${r'$'}{build.drive}${unit.@bldFile}" type="dir"/>
<then>
- <exec executable="cmd" dir="${r'$'}{build.drive}/${unit.@bldFile}" failonerror="false">
+ <exec executable="cmd" dir="${r'$'}{build.drive}${unit.@bldFile}" failonerror="false">
<arg value="/C"/>
<arg value="qmake"/>
<!-- arg value="-listgen"/ -->
- <#if unit.@qmakeArgs[0]??>
- <arg line="${unit.@qmakeArgs?xml}"/>
- <#else>
- <arg line="${ant['qt.qmake.default.args']?xml}"/>
- </#if>
+ <#escape x as x?xml>
+ <arg line="${unit.@qmakeArgs[0]!ant['qt.qmake.default.args']}"/>
+ </#escape>
<arg value="${unit.@proFile?xml}"/>
</exec>
</then>
<else>
- <echo message="ERROR: Directory ${r'$'}{build.drive}/${unit.@bldFile} doesn't exist."/>
+ <echo message="ERROR: Directory ${r'$'}{build.drive}${unit.@bldFile} doesn't exist."/>
</else>
</if>
- </#if>
-
-
</sequential>
- </#list>
+ </#list>
</parallel>
</target>
--- a/common/templates/source-spec.ant.xml.ftl Tue Jul 20 23:33:58 2010 +0100
+++ b/common/templates/source-spec.ant.xml.ftl Tue Aug 10 19:43:50 2010 +0100
@@ -17,19 +17,19 @@
<#list data as csv_file>
<#list csv_file as pkg_detail>
<target name="sf-prebuild-${count}">
-
- <!-- if defined the revision override take that as revision and change the url to point to FCL -->
- <if>
- <not><equals arg1="${ant['sf.spec.sources.revision']}" arg2="" trim="true"/></not>
- <then>
- <property name="sources.${count}.revision" value="${ant['sf.spec.sources.revision']}"/>
- <propertyregex property="sources.${count}.URL" input="${pkg_detail.source}" regexp="/MCL/" casesensitive="false" replace="/FCL/" defaultValue="${pkg_detail.source}"/>
- </then>
- <else>
- <property name="sources.${count}.revision" value="${pkg_detail.pattern}"/>
- <property name="sources.${count}.URL" value="${pkg_detail.source}"/>
- </else>
- </if>
+
+ <!-- if defined the revision override take that as revision and change the url to point to FCL -->
+ <if>
+ <not><equals arg1="${ant['sf.spec.sources.revision']}" arg2="" trim="true"/></not>
+ <then>
+ <property name="sources.${count}.revision" value="${ant['sf.spec.sources.revision']}"/>
+ <propertyregex property="sources.${count}.URL" input="${pkg_detail.source}" regexp="/MCL/" casesensitive="false" replace="/FCL/" defaultValue="${pkg_detail.source}"/>
+ </then>
+ <else>
+ <property name="sources.${count}.revision" value="${pkg_detail.pattern}"/>
+ <property name="sources.${count}.URL" value="${pkg_detail.source}"/>
+ </else>
+ </if>
<!-- Create sf\layer dir on build dir -->
<mkdir dir="${ant['build.drive']}${pkg_detail.dst}"/>
@@ -45,7 +45,7 @@
</if>
<!-- Convert source tag/branch to to changeset hash, in case it's a local tag on the server -->
- <retry tries="10" uniquename="${count}">
+ <retry tries="10" uniquename="${count}" failonerror="false">
<sequential>
<exec executable="hg" failonerror="true" output="${ant['temp.build.dir']}/sf.sourcesync.${count}.checksum" error="nul:">
<arg value="id"/>
@@ -58,6 +58,7 @@
<propertyregex property="sf.sourcesync.${count}.checksum" override="true" input="${dollar}{sf.sourcesync.${count}.checksum}" regexp="(\S{12})" select="\1"/>
</sequential>
</retry>
+ <fail unless="sf.sourcesync.${count}.checksum" message="Failed to get changeset ID for revision '${dollar}{sources.${count}.revision}' for repo ${dollar}{sources.${count}.URL}"/>
<if>
<and>
@@ -104,7 +105,7 @@
</if>
</forget>
<!-- In the meantime, by-pass it for this build -->
- <retry tries="30" uniquename="${count}">
+ <retry tries="30" uniquename="${count}" failonerror="false">
<sequential>
<echo message="Clone from ${dollar}{sources.${count}.URL} to ${ant['build.drive']}${pkg_detail.dst}"/>
<exec executable="hg" dir="${ant['build.drive']}/" failonerror="true">
@@ -113,11 +114,13 @@
<arg value="${dollar}{sources.${count}.URL}"/>
<arg value="${ant['build.drive']}${pkg_detail.dst}"/>
</exec>
+ <property name="sf.spec.sourcesync.cache.clone.succeeded.${count}" value="1"/>
</sequential>
<cleanup>
<delete dir="${ant['build.drive']}${pkg_detail.dst}"/>
</cleanup>
</retry>
+ <fail unless="sf.spec.sourcesync.cache.clone.succeeded.${count}" message="ERROR: Failed to clone ${dollar}{sources.${count}.URL} to ${ant['build.drive']}${pkg_detail.dst}"/>
</else>
</if>
<!-- Update to required revision -->
@@ -129,7 +132,7 @@
</then>
<else>
<!-- Package not in cache, or cache not in use -->
- <retry tries="10" uniquename="${count}">
+ <retry tries="10" uniquename="${count}" failonerror="false">
<sequential>
<echo message="Clone from ${dollar}{sources.${count}.URL} to ${ant['build.drive']}${pkg_detail.dst}"/>
<exec executable="hg" dir="${ant['build.drive']}/" failonerror="true">
@@ -138,11 +141,13 @@
<arg value="${dollar}{sources.${count}.URL}"/>
<arg value="${ant['build.drive']}${pkg_detail.dst}"/>
</exec>
+ <property name="sf.spec.sourcesync.cache.clone.succeeded.${count}" value="1"/>
</sequential>
<cleanup>
<delete dir="${ant['build.drive']}${pkg_detail.dst}"/>
</cleanup>
</retry>
+ <fail unless="sf.spec.sourcesync.cache.clone.succeeded.${count}" message="ERROR: Failed to clone ${dollar}{sources.${count}.URL} to ${ant['build.drive']}${pkg_detail.dst}"/>
<!-- Update to required version -->
<exec executable="hg" dir="${ant['build.drive']}${pkg_detail.dst}" failonerror="true">
<arg value="update"/>
@@ -152,25 +157,24 @@
<if>
<isset property="sf.spec.sourcesync.cachelocation.${count}"/>
<then>
+ <!-- Init cache -->
+ <mkdir dir="${dollar}{sf.spec.sourcesync.cachelocation.${count}}"/>
+ <delete dir="${dollar}{sf.spec.sourcesync.cachelocation.${count}}" failonerror="true" />
+ <echo message="Initialise cache at ${dollar}{sf.spec.sourcesync.cachelocation.${count}}"/>
+ <!-- Initialise an empty repo -->
+ <exec executable="hg" dir="${ant['build.drive']}/" failonerror="false">
+ <arg value="init"/>
+ <arg value="${dollar}{sf.spec.sourcesync.cachelocation.${count}}"/>
+ </exec>
+ <!-- Configure the paths and the speed-up flag on the cache repo -->
+ <echo file="${dollar}{sf.spec.sourcesync.cachelocation.${count}}/.hg/hgrc" append="false" message="[paths]${dollar}{line.separator}"/>
+ <echo file="${dollar}{sf.spec.sourcesync.cachelocation.${count}}/.hg/hgrc" append="true" message="default = ${dollar}{sources.${count}.URL}${dollar}{line.separator}"/>
+ <echo file="${dollar}{sf.spec.sourcesync.cachelocation.${count}}/.hg/hgrc" append="true" message="${dollar}{line.separator}"/>
+ <echo file="${dollar}{sf.spec.sourcesync.cachelocation.${count}}/.hg/hgrc" append="true" message="[server]${dollar}{line.separator}"/>
+ <echo file="${dollar}{sf.spec.sourcesync.cachelocation.${count}}/.hg/hgrc" append="true" message="uncompressed=True${dollar}{line.separator}"/>
+ <echo message="(Push from ${ant['build.drive']}${pkg_detail.dst} to ${dollar}{sf.spec.sourcesync.cachelocation.${count}} in background)"/>
<forget>
<nice newpriority="1"/>
- <!-- Init cache -->
- <mkdir dir="${dollar}{sf.spec.sourcesync.cachelocation.${count}}"/>
- <delete dir="${dollar}{sf.spec.sourcesync.cachelocation.${count}}" failonerror="true" />
- <echo message="Initialise cache at ${dollar}{sf.spec.sourcesync.cachelocation.${count}}"/>
- <!-- Clone source to get the right default repo -->
- <exec executable="hg" dir="${ant['build.drive']}/" failonerror="false">
- <arg value="clone"/>
- <arg value="-r"/>
- <arg value="null"/>
- <arg value="${dollar}{sources.${count}.URL}"/>
- <arg value="${dollar}{sf.spec.sourcesync.cachelocation.${count}}"/>
- </exec>
- <!-- Set the speed-up flag on the cache repo -->
- <echo file="${dollar}{sf.spec.sourcesync.cachelocation.${count}}/.hg/hgrc" append="true" message="${dollar}{line.separator}"/>
- <echo file="${dollar}{sf.spec.sourcesync.cachelocation.${count}}/.hg/hgrc" append="true" message="[server]${dollar}{line.separator}"/>
- <echo file="${dollar}{sf.spec.sourcesync.cachelocation.${count}}/.hg/hgrc" append="true" message="uncompressed=True${dollar}{line.separator}"/>
- <echo message="Push from ${ant['build.drive']}${pkg_detail.dst} to ${dollar}{sf.spec.sourcesync.cachelocation.${count}} in background"/>
<exec executable="hg" dir="${ant['build.drive']}${pkg_detail.dst}" failonerror="false">
<arg value="push"/>
<arg value="-f"/>
--- a/common/tools/generate_package_defs.pl Tue Jul 20 23:33:58 2010 +0100
+++ b/common/tools/generate_package_defs.pl Tue Aug 10 19:43:50 2010 +0100
@@ -52,6 +52,15 @@
print "$splitmodel2_cmd\n";
system($splitmodel2_cmd);
}
+ if ($codeline eq 'symbian4') # also update tip_pbc (package based contribution) branch
+ {
+ my $rmdir3_cmd = "del /S packages\\tip_pbc\\package_definition.xml >nul";
+ print "$rmdir3_cmd\n";
+ system($rmdir3_cmd);
+ my $splitmodel3_cmd = "perl ..\\split_sysdef.pl -s platforms\\$codeline\\single\\sysdefs\\system_model.xml -o packages\\tip_pbc";
+ print "$splitmodel3_cmd\n";
+ system($splitmodel3_cmd);
+ }
my $addremove_cmd = "hg -R packages addremove";
print "$addremove_cmd\n";
system($addremove_cmd);
@@ -65,7 +74,7 @@
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);
}
}
--- a/sf-package/symbian3_props.ant.xml Tue Jul 20 23:33:58 2010 +0100
+++ b/sf-package/symbian3_props.ant.xml Tue Aug 10 19:43:50 2010 +0100
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<project name="SYMBIAN3-PROPS">
- <property name="sf.spec.baseline.location" value="\\v800020\releases\PDK_3.0.0"/>
+ <property name="sf.spec.baseline.location" value="\\v800020\releases\PDK_3.0.1"/>
</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sf-package/tip_pbc_props.ant.xml Tue Aug 10 19:43:50 2010 +0100
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+
+<project name="COMPILERCOMPATIBILITY-PROPS">
+ <property name="sf.spec.baseline.location" value="\\v800020\Candidates\symbian4_FCL.single.725"/>
+</project>
+