--- a/common/build.postbuild.xml Mon Mar 08 14:18:19 2010 +0000
+++ b/common/build.postbuild.xml Thu Mar 11 13:23:18 2010 +0000
@@ -36,7 +36,7 @@
<stopwatch name="sf-postbuild packaging binaries"/>
<echo message="INFO Packaging Binaries"/>
<runtarget target="sf-package-binary"/>
- <runtarget target="sf-package-tools"/>
+<!-- <runtarget target="sf-package-tools"/> -->
<echo message="INFO Validate Zip files"/>
<runtarget target="sf-package-validate"/>
@@ -237,7 +237,7 @@
<property name="sf.epoc32.exclusions.file" value="nul:"/>
<exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_binaries_epoc32.log">
<arg value="a"/>
- <arg value="-tzip"/>
+ <arg value="-t${sf.spec.package.zip.format}"/>
<arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
<arg value="-x@${sf.epoc32.exclusions.file}"/>
<arg value="-x!epoc32\gcc"/>
@@ -256,7 +256,7 @@
<then>
<exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_binaries_sdk.log">
<arg value="a"/>
- <arg value="-tzip"/>
+ <arg value="-t${sf.spec.package.zip.format}"/>
<arg value="-i@${sf.sdk.header.list.file}"/>
<arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
<arg value="${build.drive}/output/zips/release/binaries_epoc_sdk.zip"/>
@@ -276,23 +276,60 @@
</then>
</if>
- <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_binaries_winscw.log">
+ <!-- WinsCW binaries, by udeb/urel/lib -->
+ <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_binaries_winscw_udeb.log">
<arg value="a"/>
- <arg value="-tzip"/>
+ <arg value="-t${sf.spec.package.zip.format}"/>
<arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
<arg value="-xr!*.sym"/>
- <arg value="${build.drive}/output/zips/release/binaries_winscw.zip"/>
- <arg value="epoc32\release\winscw\"/>
+ <arg value="-xr!*.lib"/>
+ <arg value="${build.drive}/output/zips/release/binaries_winscw_udeb.zip"/>
+ <arg value="epoc32\release\winscw\udeb"/>
+ </exec>
+ <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_binaries_winscw_urel.log">
+ <arg value="a"/>
+ <arg value="-t${sf.spec.package.zip.format}"/>
+ <arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
+ <arg value="-xr!*.sym"/>
+ <arg value="-xr!*.lib"/>
+ <arg value="${build.drive}/output/zips/release/binaries_winscw_urel.zip"/>
+ <arg value="epoc32\release\winscw\urel"/>
+ </exec>
+ <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_binaries_winscw_lib.log">
+ <arg value="a"/>
+ <arg value="-t${sf.spec.package.zip.format}"/>
+ <arg value="-ir!epoc32/release/winscw/*.lib"/>
+ <arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
+ <arg value="${build.drive}/output/zips/release/binaries_winscw_lib.zip"/>
</exec>
- <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_binaries_armv5.log">
+ <!-- ARMv5 binaries, by udeb/urel/lib -->
+ <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_binaries_armv5_udeb.log">
<arg value="a"/>
- <arg value="-tzip"/>
+ <arg value="-t${sf.spec.package.zip.format}"/>
+ <arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
+ <arg value="-xr!*.sym"/>
+ <arg value="${build.drive}/output/zips/release/binaries_armv5_udeb.zip"/>
+ <arg value="epoc32\release\armv5\udeb"/>
+ </exec>
+ <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_binaries_armv5_urel.log">
+ <arg value="a"/>
+ <arg value="-t${sf.spec.package.zip.format}"/>
<arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
<arg value="-xr!*.sym"/>
- <arg value="${build.drive}/output/zips/release/binaries_armv5.zip"/>
- <arg value="epoc32\release\armv5\"/>
+ <arg value="${build.drive}/output/zips/release/binaries_armv5_urel.zip"/>
+ <arg value="epoc32\release\armv5\urel"/>
</exec>
+ <exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_binaries_armv5_lib.log">
+ <arg value="a"/>
+ <arg value="-t${sf.spec.package.zip.format}"/>
+ <arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
+ <arg value="-xr!*.sym"/>
+ <arg value="${build.drive}/output/zips/release/binaries_armv5_lib.zip"/>
+ <arg value="epoc32\release\armv5\lib"/>
+ </exec>
+ <runtarget target="sf-package-tools"/>
+
</parallel>
<!-- Generate release_metadata entries for the above zips -->
<antcall target="sf-zip-content">
@@ -311,7 +348,7 @@
<target name="sf-package-tools" >
<exec executable="7za" dir="${build.drive}" output="${build.log.dir}/zip_${build.id}_tools_epoc32.log">
<arg value="a"/>
- <arg value="-tzip"/>
+ <arg value="-t${sf.spec.package.zip.format}"/>
<arg value="-x@${build.log.dir}/rnd_excludefile.txt"/>
<arg value="${build.drive}/output/zips/release/tools_epoc.zip"/>
<arg value="epoc32/tools"/>
@@ -359,6 +396,8 @@
<exec executable="perl" dir="${build.log.dir}" failonerror="false" output="${build.log.dir}/analysis/${build.id}_scan_ant.log">
<arg value="${sf.common.config.dir}/tools/analysis/scan_antlogs.pl"/>
<arg value="*ant*"/>
+ <arg value="*stderr*"/> <!-- helium 7 splits output into stderr logs, so use them also -->
+ <arg value="*sbs_error*"/>
</exec>
</target>
@@ -806,7 +845,7 @@
<then>
<echo message="INFO Packaging Binaries"/>
<runtarget target="sf-package-binary"/>
- <runtarget target="sf-package-tools"/>
+<!-- <runtarget target="sf-package-tools"/> -->
<echo message="INFO Validate Zip files"/>
<runtarget target="sf-package-validate"/>
--- a/common/build.xml Mon Mar 08 14:18:19 2010 +0000
+++ b/common/build.xml Thu Mar 11 13:23:18 2010 +0000
@@ -81,14 +81,24 @@
<!-- Import test functionality distributed into other file(s) -->
<import file="${sf.common.config.dir}/build.test.xml"/>
- <!-- helium 7 compatability. needs to be defined -->
+ <!-- helium 7+ compatability. needs to be defined -->
<if>
- <or>
- <equals arg1="${helium.version}" arg2="7.0"/>
- <equals arg1="${last.major.helium.version}" arg2="7.0"/>
- </or>
+ <not><or>
+ <equals arg1="${helium.version}" arg2="5.0"/>
+ <equals arg1="${last.major.helium.version}" arg2="5.0"/>
+ </or></not>
<then>
<property name="schema.new" value="true"/>
+ <property name="skip.sbs.parser.exception" value="true"/>
+
+ <!-- Never fail on sbs compile errors -->
+ <hlm:signalInput id="compileSignalInput" failbuild="never">
+ <hlm:notifierListRef refid="defaultFailNotifier" />
+ </hlm:signalInput>
+
+ <hlm:signalInput id="raptorErrorSignalInput" failbuild="never">
+ <hlm:notifierListRef refid="defaultFailNotifier" />
+ </hlm:signalInput>
</then>
</if>
@@ -199,6 +209,7 @@
<delete dir="${prep.build.dir}"/>
</target>
+ <!-- Note: Not used from Helium 7 onwards -->
<target name="generate-layers">
<echo message="canno-file:${canonical.sysdef.file}"/>
<echo message="raptor-filters:raptor_${sysdef.configuration}"/>
--- a/common/common_props.ant.xml Mon Mar 08 14:18:19 2010 +0000
+++ b/common/common_props.ant.xml Thu Mar 11 13:23:18 2010 +0000
@@ -88,6 +88,7 @@
<!-- packaging options for bin/src-->
<property name="sf.spec.package.bin.enable" value="false"/>
<property name="sf.spec.package.src.enable" value="false"/>
+ <property name="sf.spec.package.zip.format" value="7z"/> <!-- can be 'zip' or '7z'-->
<!--<property name="sf.sdk.header.list.file" value=""/> --> <!-- Set this to package SDK headers separately from the rest of epoc32 -->
<!-- enable creation of MD5s -->
--- a/common/templates/source-spec.ant.xml.ftl Mon Mar 08 14:18:19 2010 +0000
+++ b/common/templates/source-spec.ant.xml.ftl Thu Mar 11 13:23:18 2010 +0000
@@ -163,10 +163,7 @@
<arg value="log"/>
<arg value="-r"/>
<arg value="${dollar}{sf.sourcesync.${count}.checksum}:${dollar}{sf.previous.pdk.tag}"/>
- <#if "${pkg_detail.type}"=="branch">
- <arg value="-b"/>
- <arg value="${pkg_detail.pattern}"/>
- </#if>
+ <arg value="-f"/>
</exec>
</target>
--- a/common/templates/zip.cfg.xml.ftl.template Mon Mar 08 14:18:19 2010 +0000
+++ b/common/templates/zip.cfg.xml.ftl.template Thu Mar 11 13:23:18 2010 +0000
@@ -87,12 +87,25 @@
<config name="core">
<set name="name" value="binaries_epoc"/>
</config>
- <config name="armv5">
- <set name="name" value="binaries_armv5"/>
+ <config name="armv5_udeb">
+ <set name="name" value="binaries_armv5_udeb"/>
+ </config>
+ <config name="armv5_urel">
+ <set name="name" value="binaries_armv5_urel"/>
+ </config>
+ <config name="armv5_lib">
+ <set name="name" value="binaries_armv5_lib"/>
</config>
- <config name="winscw">
- <set name="name" value="binaries_winscw"/>
+ <config name="winscw_udeb">
+ <set name="name" value="binaries_winscw_udeb"/>
</config>
+ <config name="winscw_urel">
+ <set name="name" value="binaries_winscw_urel"/>
+ </config>
+ <config name="winscw_lib">
+ <set name="name" value="binaries_winscw_lib"/>
+ </config>
+
</config>
<!-- "Null" SDK entry, which matches no files, but does populate the release_metadata.xml -->
<config name="bin-sdk-just-metadata" abstract="true">
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/common/tools/bc_filter.pl Thu Mar 11 13:23:18 2010 +0000
@@ -0,0 +1,158 @@
+#!/usr/bin/perl
+
+# Copyright (c) 2009 Symbian Foundation Ltd
+# This component and the accompanying materials are made available
+# under the terms of the License "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:
+# Symbian Foundation Ltd - initial contribution.
+# Maciej Seroka, maciejs@symbian.org
+#
+# Description:
+# This is a tool for filtering static BC header reports.
+#
+
+use strict;
+use XML::Simple;
+use File::Copy;
+use Tie::File;
+use Data::Dumper;
+
+my $report;
+my $header_list;
+my $destfile = "stripped_headers_report.xml";
+my $del_ok_issues = 1; # This variable determines whether to delete OK issues first.
+my $del_comp_issues = 0; # This variable determies whether to delete Compilation errors.
+my $del_boost_issues = 1; # This variable determies whether to delete issues for Boost API headers.
+
+my $n;
+my $m;
+my $file_name;
+my $delete_node;
+
+if ($ARGV[1]) {
+ $report = $ARGV[0];
+ $header_list = $ARGV[1];
+} else {
+ die "Missing parameter(s). For example: bc_filter.pl headers_report.xml public_headers.txt";
+}
+
+# Parse the input XML into hashrefs.
+print "Parsing " . $report . "... ";
+my $current_report = XMLin("./$report", keeproot => 1,
+ forcearray => [ 'header', 'baselineversion', 'currentversion', 'timestamp', 'day', 'month', 'year', 'hour', 'minute', 'second', #
+ 'haversion', 'formatversion', 'cmdlineparms', 'parm', 'pname', 'pvalue', 'knownissuesversion', 'os', 'version', 'buildweek', 'issuelist',#
+ 'headerfile', 'filename', 'comparefilename', 'status', 'comment', 'issue', 'checksum', 'shortname', 'issueid', 'typeid', 'identityid', #
+ 'identitydescription', 'typestring', 'cause', 'documentation', 'ignoreinformation', 'linenumber', 'severity', 'scseverity'], keyattr => [] );
+print "complete \n";
+
+# Load Public API definitions
+my @lines;
+tie @lines, 'Tie::File', $header_list or die ("Cannot tie file \"$header_list\". $!\n");
+
+# Get number of header files
+my $header_num = @{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}};
+print "Number of all header files with issues: $header_num \n";
+
+# Delete known issues.
+if ($del_ok_issues) {
+ $n = 0;
+ while ($n < $header_num) {
+ $file_name = $current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'shortname'}->[0];
+ # Delete the node if known issue.
+ if ($current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'status'}->[0] eq "OK") {
+ print "Known issue: $file_name ...deleted\n";
+ splice(@{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}},$n, 1);
+ $header_num--;
+ } else {
+# print "Unknown issue: $file_name \n";
+ $n++;
+ }
+ }
+ # Get number of header files again
+ $header_num = @{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}};
+ print "Number of remaining header files with issues: $header_num \n";
+}
+
+# Delete compilation issues.
+# Assumption: Compilation issue is always the top issue (and probably the only one)
+if ($del_comp_issues) {
+ $n = 0;
+ while ($n < $header_num) {
+ $file_name = $current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'shortname'}->[0];
+ if (($current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'issue'}->[0]->{'typestring'}->[0] eq "has compilation errors") && #
+ ($current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'status'}->[0] ne "OK")) { # Delete the node if compilation error.
+ print "$file_name has compilation errors \n";
+ splice(@{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}},$n, 1);
+ $header_num--;
+ } else {
+ $n++;
+ }
+ }
+ # Get number of header files again
+ $header_num = @{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}};
+ print "Number of header files with non-compilation issues: $header_num \n";
+}
+
+# Delete Boost API related issues (Boost API headers are not present in any of the Public SDK!).
+if ($del_boost_issues) {
+ $n = 0;
+ while ($n < $header_num) {
+ $file_name = $current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'shortname'}->[0];
+ # Delete the node if Boost API header.
+ if ($file_name =~ m/\\boost/) {
+ print "Boost API: $file_name \n";
+ splice(@{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}},$n, 1);
+ $header_num--;
+ } else {
+ $n++;
+ }
+ }
+ # Get number of header files again
+ $header_num = @{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}};
+ print "Number of non-Boost API header files: $header_num \n";
+}
+
+# Delete non-public API issues.
+$n = 0;
+while ($n < $header_num) {
+ $file_name = $current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'shortname'}->[0];
+ $m = 0;
+ $delete_node = 1;
+ foreach (@lines) { # Check against header list.
+ if (lc($file_name) eq lc(@lines[$m])) { # Mark the node to NOT be deleted.
+ $delete_node = 0;
+ last;
+ }
+ $m++;
+ }
+ # Delete the node if non-public issue.
+ if ($delete_node) {
+ print "Header file: $file_name not found in Public API definition file... deleted\n";
+ splice(@{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}},$n, 1);
+ $header_num--;
+ } else {
+ $n++;
+ }
+}
+
+# Get number of header files again
+$header_num = @{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}};
+print "Final number of header files with issues: $header_num \n";
+
+# Close Public API definition file.
+untie @lines;
+
+# Write new XML to dest file.
+open OUT,">$destfile" or die("Cannot open file \"$destfile\" for writing. $!\n");
+print OUT XMLout($current_report, keeproot => 1);
+close OUT;
+
+# Insert: <?xml version="1.0" encoding="ASCII" standalone="no" ?>
+# <?xml-stylesheet type="text/xsl" href="BBCResults.xsl"?>
+tie @lines, 'Tie::File', $destfile or die ("Cannot tie file \"$destfile\". $!\n");
+unshift @lines, "<?xml-stylesheet type=\"text/xsl\" href=\"BBCResults.xsl\"?>";
+unshift @lines, "<?xml version=\"1.0\" encoding=\"ASCII\" standalone=\"no\" ?>";
+untie @lines;
--- a/sf-platform/build.xml Mon Mar 08 14:18:19 2010 +0000
+++ b/sf-platform/build.xml Thu Mar 11 13:23:18 2010 +0000
@@ -12,9 +12,21 @@
<!-- import package references -->
<import file="${sf.platform.config.dir}/platform_refs.ant.xml" optional="true"/>
- <!--
- * Property defaults
- -->
+ <!-- pre helium 7+ should import compile targets from compile-hlm-5.ant.xml -->
+ <if>
+ <or>
+ <equals arg1="${helium.version}" arg2="5.0"/>
+ <equals arg1="${last.major.helium.version}" arg2="5.0"/>
+ </or>
+ <then>
+ <echo>INFO Importing HLM5 compile targets</echo>
+ <import file="${sf.platform.config.dir}/compile-hlm-5.ant.xml"/>
+ </then>
+ <else>
+ <echo>INFO Importing HLM7 compile targets</echo>
+ <import file="${sf.platform.config.dir}/compile.ant.xml"/>
+ </else>
+ </if>
<!-- MattD - workaround until generating a model from package definitions works-->
<target name="sf-build-noprep" depends="sf-platform-bootstrap,sf-compile,sf-postbuild">
@@ -128,7 +140,7 @@
== s60 build will be skipped if sf.spec.s60.skipbuild=true
==
-->
- <target name="sf-compile">
+ <target name="sf-compile">
<stopwatch name="sf-compile"/>
<!-- TODO clean up to single target once genxml v2.0.0 merge is fixed -->
@@ -163,326 +175,7 @@
<stopwatch name="sf-compile" action="elapsed"/>
</target>
- <!--
- == Name: SF-OS-COMPILE
- ==
- == Desc: Compile OS part of build using the spec defined in:
- ==
- == - job_props.ant.xml
- == - job_refs.ant.xml
- ==
- -->
- <target name="sf-os-compile" depends="sf-compile-options">
-
- <!-- generate baseline dir list to allow delta creation -->
- <if><isset property="sf.os.compile.fast"/>
- <then>
- <echo message="INFO [FAST COMPILE] Skipping baseline dir list generation"/>
- </then>
- <else>
- <antcall target="sf-list-dir" inheritAll="false">
- <param name="sf.list.name" value="baseline"/>
- </antcall>
- </else>
- </if>
-
- <!-- OS clean main build -->
- <if><istrue value="${sf.spec.baseline.clean}"/>
- <then>
- <hlm:argSet id="sbs.main.clean.sbs.var">
- <hlm:arg name="config" value="${sf.spec.sbs.config}" />
- <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
- <hlm:arg name="command" value="CLEAN --check" />
- </hlm:argSet>
- <antcall target="compile-main" inheritAll="false" inheritRefs="true">
- <param name="build.system" value="${sf.spec.build.system}" />
- <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
- <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
- <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
- <reference refid="sbs.main.clean.sbs.var" torefid="sbs.var" />
- <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
- <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
- </antcall>
- </then>
- </if>
-
- <if><isset property="sf.os.compile.fast"/>
- <then>
- <echo message="INFO [FAST COMPILE] Skipping baseline vs post-clean delta generation"/>
- </then>
- <else>
- <antcall target="sf-list-dir" inheritAll="false">
- <param name="sf.list.name" value="post-clean"/>
- </antcall>
- <!-- what has been cleaned from baseline PDK by sos model -->
- <antcall target="sf-delta-dir" inheritAll="false">
- <param name="sf.list_a.name" value="baseline"/>
- <param name="sf.list_b.name" value="post-clean"/>
- </antcall>
- </else>
- </if>
-
- <if><isset property="sf.os.compile.fast"/>
- <then>
- <echo message="INFO [FAST COMPILE] Skipping Tools/Tools2 builds"/>
- </then>
- <else>
-
- <for list="${sf.spec.sbs.tools.config}" delimiter="," param="sf.spec.sbs.tools.splitconfig">
- <sequential>
- <echo message="INFO [Iterative tools compile] @{sf.spec.sbs.tools.splitconfig}"/>
- <propertyregex property="sf.building.tools2" override="true" input="@{sf.spec.sbs.tools.splitconfig}" regexp="^tools2" select="true" defaultValue="false"/>
-
- <if>
- <istrue value="${sf.building.tools2}"/>
- <then>
- <!-- "tools2" build -->
- <hlm:argSet id="sbs.tools2.var">
- <hlm:arg name="config" value="@{sf.spec.sbs.tools.splitconfig}" />
- <hlm:arg name="singlejob" value="false" />
- <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
- <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
- </hlm:argSet>
- <antcall target="compile-main" inheritAll="false" inheritRefs="true">
- <param name="build.system" value="${sf.spec.build.system}" />
- <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
- <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
- <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
- <reference refid="sbs.tools2.var" torefid="sbs.var" />
- <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
- <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
- </antcall>
-
- <antcall target="sf-list-dir" inheritAll="false">
- <param name="sf.list.name" value="post-build-tools2"/>
- </antcall>
- </then>
-
- <else>
- <!-- "tools" build -->
- <hlm:argSet id="sbs.tools.var">
- <hlm:arg name="config" value="@{sf.spec.sbs.tools.splitconfig}" />
- <hlm:arg name="singlejob" value="true" />
- <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
- <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
- </hlm:argSet>
- <antcall target="compile-main" inheritAll="false" inheritRefs="true">
- <param name="build.system" value="${sf.spec.build.system}" />
- <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
- <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
- <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
- <reference refid="sbs.tools.var" torefid="sbs.var" />
- <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
- <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
- </antcall>
-
- <antcall target="sf-list-dir" inheritAll="false">
- <param name="sf.list.name" value="post-build-tools"/>
- </antcall>
- </else>
- </if>
- </sequential>
- </for>
-
- </else>
- </if>
-
- <if><istrue value="${sf.os.compile.iterate}"/>
- <then>
- <for list="${sf.spec.sbs.config}" delimiter="," param="sf.spec.sbs.splitconfig">
- <sequential>
- <echo message="INFO [Iterative compile] @{sf.spec.sbs.splitconfig}"/>
-
- <hlm:argSet id="sbs.main.iterate.sbs.var">
- <hlm:arg name="config" value="@{sf.spec.sbs.splitconfig}" />
- <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
- <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
- </hlm:argSet>
- <antcall target="compile-main" inheritAll="false" inheritRefs="true">
- <param name="build.system" value="${sf.spec.build.system}" />
- <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
- <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
- <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
- <reference refid="sbs.main.iterate.sbs.var" torefid="sbs.var" />
- <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
- <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
- </antcall>
- </sequential>
- </for>
- </then>
- <else>
- <!-- OS main build -->
- <hlm:argSet id="sbs.main.sbs.var">
- <hlm:arg name="config" value="${sf.spec.sbs.config}" />
- <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
- <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
- </hlm:argSet>
- <antcall target="compile-main" inheritAll="false" inheritRefs="true">
- <param name="build.system" value="${sf.spec.build.system}" />
- <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
- <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
- <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
- <reference refid="sbs.main.sbs.var" torefid="sbs.var" />
- <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
- <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
- </antcall>
- </else>
- </if>
-
- <if><isset property="sf.os.compile.fast"/>
- <then>
- <echo message="INFO [FAST COMPILE] Skipping delta and intersect list generation"/>
- </then>
- <else>
- <antcall target="sf-list-dir" inheritAll="false">
- <param name="sf.list.name" value="post-build-main"/>
- </antcall>
-
- <!-- what has been built in tools2+tools+main -->
- <antcall target="sf-delta-dir" inheritAll="false">
- <param name="sf.list_a.name" value="post-clean"/>
- <param name="sf.list_b.name" value="post-build-main"/>
- </antcall>
-
- <!-- what has been cleaned and rebuilt -->
- <antcall target="sf-intersect-dir" inheritAll="false">
- <param name="sf.list_a.name" value="post-clean_delta"/> <!-- clean list -->
- <param name="sf.list_b.name" value="post-build-main_delta"/> <!-- built list -->
- </antcall>
- </else>
- </if>
-
- </target>
-
- <!--
- == Name: SF-S60-COMPILE
- ==
- == Desc: Compile S60 part of build using the spec defined in:
- ==
- == - job_props.ant.xml
- == - job_refs.ant.xml
- ==
- -->
- <target name="sf-s60-compile" depends="sf-compile-options">
-
- <hlm:argSet id="sbs.tools.var">
- <hlm:arg name="config" value="${sf.spec.sbs.tools.config}" />
- <hlm:arg name="singlejob" value="true" />
- <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
- <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
- </hlm:argSet>
-
- <hlm:argSet id="sbs.tools.clean.var">
- <hlm:arg name="config" value="${sf.spec.sbs.tools.config}" />
- <hlm:arg name="singlejob" value="true" />
- <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
- </hlm:argSet>
-
- <hlm:argSet id="sbs.main.sbs.var">
- <hlm:arg name="config" value="${sf.spec.sbs.config}" />
- <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
- <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
- </hlm:argSet>
-
- <hlm:argSet id="sbs.main.clean.sbs.var">
- <hlm:arg name="config" value="${sf.spec.sbs.config}" />
- <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
- <hlm:arg name="command" value="CLEAN --check" />
- </hlm:argSet>
-
- <hlm:argSet id="sbs.main.what.sbs.var">
- <hlm:arg name="config" value="${sf.spec.sbs.config}" />
- <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
- <hlm:arg name="command" value="WHAT" />
- </hlm:argSet>
-
- <hlm:sbsMakeOptions engine="gmake" id="sbs.toolsbuild.options" />
- <hlm:sbsMakeOptions engine="gmake" id="sbs.fullbuild.options" />
-
- <antcall target="sf-list-dir" inheritAll="false">
- <param name="sf.list.name" value="s60-baseline"/>
- </antcall>
-
- <!-- s60 what -->
- <!--
- <antcall target="compile-main" inheritAll="false" inheritRefs="true">
- <param name="build.system" value="${sf.spec.build.system}" />
- <param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
- <param name="sf.spec.sysdef.version" value="${sf.spec.s60.sysdef.version}"/>
- <reference refid="sbs.main.what.sbs.var" torefid="sbs.var" />
- <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
- <reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
- </antcall>
- -->
- <!-- s60 clean main build -->
- <if><istrue value="${sf.spec.baseline.clean}"/>
- <then>
- <antcall target="compile-main" inheritAll="false" inheritRefs="true">
- <param name="build.system" value="${sf.spec.build.system}" />
- <param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
- <param name="sf.spec.sysdef.version" value="${sf.spec.s60.sysdef.version}"/>
- <reference refid="sbs.main.clean.sbs.var" torefid="sbs.var" />
- <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
- <reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
- </antcall>
- </then>
- </if>
-
- <antcall target="sf-list-dir" inheritAll="false">
- <param name="sf.list.name" value="post-s60-clean"/>
- </antcall>
-
- <!-- what has been cleaned from baseline PDK by s60 model -->
- <antcall target="sf-delta-dir" inheritAll="false">
- <param name="sf.list_a.name" value="s60-baseline"/>
- <param name="sf.list_b.name" value="post-s60-clean"/>
- </antcall>
-
-
- <!-- s60 tools build -->
- <antcall target="compile-main" inheritAll="false" inheritRefs="true">
- <param name="build.system" value="${sf.spec.build.system}" />
- <param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
- <param name="sf.spec.sysdef.version" value ="${sf.spec.s60.sysdef.version}"/>
- <reference refid="sbs.tools.var" torefid="sbs.var" />
- <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
- <reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
- </antcall>
-
- <antcall target="sf-list-dir" inheritAll="false">
- <param name="sf.list.name" value="post-s60-build-tools"/>
- </antcall>
-
- <!-- s60 main build -->
- <antcall target="compile-main" inheritAll="false" inheritRefs="true">
- <param name="build.system" value="${sf.spec.build.system}" />
- <param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
- <param name="sf.spec.sysdef.version" value="${sf.spec.s60.sysdef.version}"/>
- <reference refid="sbs.main.sbs.var" torefid="sbs.var" />
- <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
- <reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
- </antcall>
-
-
- <antcall target="sf-list-dir" inheritAll="false">
- <param name="sf.list.name" value="post-s60-build-main"/>
- </antcall>
-
- <!-- what has been built by tools+2+main -->
- <antcall target="sf-delta-dir" inheritAll="false">
- <param name="sf.list_a.name" value="s60-baseline"/>
- <param name="sf.list_b.name" value="post-s60-build-main"/>
- </antcall>
-
- <!-- what has been cleaned and rebuilt -->
- <antcall target="sf-intersect-dir" inheritAll="false">
- <param name="sf.list_a.name" value="post-s60-clean_delta"/> <!-- clean list -->
- <param name="sf.list_b.name" value="post-s60-build-main_delta"/> <!-- built list -->
- </antcall>
-
- </target>
-
- <target name="sf-s60-create-cenrep">
+ <target name="sf-s60-create-cenrep">
<echo message="INFO Generating CenRep"/>
<echo message="Move 'sf.spec.s60.cenrep.export.location' out of the build..."/>
<property name="sf.spec.s60.cenrep.export.location.1" value="/epoc32/rom/config/confml_data/s60"/>
@@ -518,13 +211,13 @@
<target name="sf-s60-cone-cenrep">
<!-- TODO: Make this better, as multiple exec calls are a bit clunky -->
- <if><available file="${helium.dir}/../ConE/" type="dir"/>
+ <if><available file="${env.PDT_HOME}/ConE/" type="dir"/>
<then>
<echo message="INFO Generating ConE CenRep"/>
<exec executable="cmd" dir="${build.drive}/epoc32/rom/config" failonerror="false" output="${build.log.dir}/${build.id}_cenrep.log">
<arg value="/c"/>
- <arg value="cone"/>
+ <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
<arg value="generate"/>
<arg value="-c"/>
<arg value="convert.confml"/>
@@ -534,7 +227,7 @@
<exec executable="cmd" dir="${build.drive}/epoc32/tools" failonerror="false" append="true" output="${build.log.dir}/${build.id}_cenrep.log">
<arg value="/c"/>
- <arg value="cone"/>
+ <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
<arg value="generate"/>
<arg value="-p"/>
<arg value="\epoc32\rom\config"/>
@@ -548,7 +241,7 @@
<exec executable="cmd" dir="${build.drive}/epoc32/tools" failonerror="false" append="true" output="${build.log.dir}/${build.id}_cenrep.log">
<arg value="/c"/>
- <arg value="cone"/>
+ <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
<arg value="generate"/>
<arg value="-p"/>
<arg value="\epoc32\rom\config"/>
@@ -562,7 +255,7 @@
<exec executable="cmd" dir="${build.drive}/epoc32/tools" failonerror="false" append="true" output="${build.log.dir}/${build.id}_cenrep.log">
<arg value="/c"/>
- <arg value="cone"/>
+ <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
<arg value="generate"/>
<arg value="-p"/>
<arg value="\epoc32\rom\config"/>
@@ -576,7 +269,7 @@
<exec executable="cmd" dir="${build.drive}/epoc32/tools" failonerror="false" append="true" output="${build.log.dir}/${build.id}_cenrep.log">
<arg value="/c"/>
- <arg value="cone"/>
+ <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
<arg value="generate"/>
<arg value="-p"/>
<arg value="\epoc32\rom\config"/>
@@ -590,7 +283,7 @@
<exec executable="cmd" dir="${build.drive}/epoc32/tools" failonerror="false" append="true" output="${build.log.dir}/${build.id}_cenrep.log">
<arg value="/c"/>
- <arg value="cone"/>
+ <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
<arg value="generate"/>
<arg value="-p"/>
<arg value="\epoc32\rom\config"/>
@@ -604,7 +297,7 @@
<exec executable="cmd" dir="${build.drive}/epoc32/tools" failonerror="false" append="true" output="${build.log.dir}/${build.id}_cenrep.log">
<arg value="/c"/>
- <arg value="cone"/>
+ <arg value="${env.PDT_HOME}/ConE/cone.cmd"/>
<arg value="generate"/>
<arg value="-p"/>
<arg value="\epoc32\rom\config"/>
@@ -618,7 +311,7 @@
</then>
<else>
- <echo message="WARNING ConE is required to run this target. ConE not found, please update your PDT."/>
+ <echo message="WARNING ConE is required to run this target. ConE not found in ${env.PDT_HOME}/ConE/, please update your PDT."/>
</else>
</if>
</target>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sf-platform/compile-hlm-5.ant.xml Thu Mar 11 13:23:18 2010 +0000
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="SF-COMPILE-HLM-5" xmlns:hlm="http://www.nokia.com/helium">
+ <!--
+ == Name: SF-OS-COMPILE
+ ==
+ == Desc: Compile OS part of build using the spec defined in:
+ ==
+ == - job_props.ant.xml
+ == - job_refs.ant.xml
+ ==
+ -->
+ <target name="sf-os-compile" depends="sf-compile-options">
+
+ <echo message="INFO Using Helium 5 for sf-os-compile"/>
+ <!-- generate baseline dir list to allow delta creation -->
+ <if><isset property="sf.os.compile.fast"/>
+ <then>
+ <echo message="INFO [FAST COMPILE] Skipping baseline dir list generation"/>
+ </then>
+ <else>
+ <antcall target="sf-list-dir" inheritAll="false">
+ <param name="sf.list.name" value="baseline"/>
+ </antcall>
+ </else>
+ </if>
+
+ <!-- OS clean main build -->
+ <if><istrue value="${sf.spec.baseline.clean}"/>
+ <then>
+ <hlm:argSet id="sbs.main.clean.sbs.var">
+ <hlm:arg name="config" value="${sf.spec.sbs.config}" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ <hlm:arg name="command" value="CLEAN --check" />
+ </hlm:argSet>
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
+ <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
+ <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
+ <reference refid="sbs.main.clean.sbs.var" torefid="sbs.var" />
+ <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+ <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+ </then>
+ </if>
+
+ <if><isset property="sf.os.compile.fast"/>
+ <then>
+ <echo message="INFO [FAST COMPILE] Skipping baseline vs post-clean delta generation"/>
+ </then>
+ <else>
+ <antcall target="sf-list-dir" inheritAll="false">
+ <param name="sf.list.name" value="post-clean"/>
+ </antcall>
+ <!-- what has been cleaned from baseline PDK by sos model -->
+ <antcall target="sf-delta-dir" inheritAll="false">
+ <param name="sf.list_a.name" value="baseline"/>
+ <param name="sf.list_b.name" value="post-clean"/>
+ </antcall>
+ </else>
+ </if>
+
+ <if><isset property="sf.os.compile.fast"/>
+ <then>
+ <echo message="INFO [FAST COMPILE] Skipping Tools/Tools2 builds"/>
+ </then>
+ <else>
+
+ <for list="${sf.spec.sbs.tools.config}" delimiter="," param="sf.spec.sbs.tools.splitconfig">
+ <sequential>
+ <echo message="INFO [Iterative tools compile] @{sf.spec.sbs.tools.splitconfig}"/>
+ <propertyregex property="sf.building.tools2" override="true" input="@{sf.spec.sbs.tools.splitconfig}" regexp="^tools2" select="true" defaultValue="false"/>
+
+ <if>
+ <istrue value="${sf.building.tools2}"/>
+ <then>
+ <!-- "tools2" build -->
+ <hlm:argSet id="sbs.tools2.var">
+ <hlm:arg name="config" value="@{sf.spec.sbs.tools.splitconfig}" />
+ <hlm:arg name="singlejob" value="false" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
+ </hlm:argSet>
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
+ <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
+ <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
+ <reference refid="sbs.tools2.var" torefid="sbs.var" />
+ <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
+ <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+
+ <antcall target="sf-list-dir" inheritAll="false">
+ <param name="sf.list.name" value="post-build-tools2"/>
+ </antcall>
+ </then>
+
+ <else>
+ <!-- "tools" build -->
+ <hlm:argSet id="sbs.tools.var">
+ <hlm:arg name="config" value="@{sf.spec.sbs.tools.splitconfig}" />
+ <hlm:arg name="singlejob" value="true" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
+ </hlm:argSet>
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
+ <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
+ <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
+ <reference refid="sbs.tools.var" torefid="sbs.var" />
+ <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
+ <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+
+ <antcall target="sf-list-dir" inheritAll="false">
+ <param name="sf.list.name" value="post-build-tools"/>
+ </antcall>
+ </else>
+ </if>
+ </sequential>
+ </for>
+
+ </else>
+ </if>
+
+ <if><istrue value="${sf.os.compile.iterate}"/>
+ <then>
+ <for list="${sf.spec.sbs.config}" delimiter="," param="sf.spec.sbs.splitconfig">
+ <sequential>
+ <echo message="INFO [Iterative compile] @{sf.spec.sbs.splitconfig}"/>
+
+ <hlm:argSet id="sbs.main.iterate.sbs.var">
+ <hlm:arg name="config" value="@{sf.spec.sbs.splitconfig}" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
+ </hlm:argSet>
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
+ <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
+ <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
+ <reference refid="sbs.main.iterate.sbs.var" torefid="sbs.var" />
+ <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+ <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+ </sequential>
+ </for>
+ </then>
+ <else>
+ <!-- OS main build -->
+ <hlm:argSet id="sbs.main.sbs.var">
+ <hlm:arg name="config" value="${sf.spec.sbs.config}" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
+ </hlm:argSet>
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" />
+ <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
+ <param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/>
+ <reference refid="sbs.main.sbs.var" torefid="sbs.var" />
+ <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+ <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+ </else>
+ </if>
+
+ <if><isset property="sf.os.compile.fast"/>
+ <then>
+ <echo message="INFO [FAST COMPILE] Skipping delta and intersect list generation"/>
+ </then>
+ <else>
+ <antcall target="sf-list-dir" inheritAll="false">
+ <param name="sf.list.name" value="post-build-main"/>
+ </antcall>
+
+ <!-- what has been built in tools2+tools+main -->
+ <antcall target="sf-delta-dir" inheritAll="false">
+ <param name="sf.list_a.name" value="post-clean"/>
+ <param name="sf.list_b.name" value="post-build-main"/>
+ </antcall>
+
+ <!-- what has been cleaned and rebuilt -->
+ <antcall target="sf-intersect-dir" inheritAll="false">
+ <param name="sf.list_a.name" value="post-clean_delta"/> <!-- clean list -->
+ <param name="sf.list_b.name" value="post-build-main_delta"/> <!-- built list -->
+ </antcall>
+ </else>
+ </if>
+
+ </target>
+
+ <!--
+ == Name: SF-S60-COMPILE
+ ==
+ == Desc: Compile S60 part of build using the spec defined in:
+ ==
+ == - job_props.ant.xml
+ == - job_refs.ant.xml
+ ==
+ -->
+ <target name="sf-s60-compile" depends="sf-compile-options">
+
+ <hlm:argSet id="sbs.tools.var">
+ <hlm:arg name="config" value="${sf.spec.sbs.tools.config}" />
+ <hlm:arg name="singlejob" value="true" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
+ </hlm:argSet>
+
+ <hlm:argSet id="sbs.tools.clean.var">
+ <hlm:arg name="config" value="${sf.spec.sbs.tools.config}" />
+ <hlm:arg name="singlejob" value="true" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ </hlm:argSet>
+
+ <hlm:argSet id="sbs.main.sbs.var">
+ <hlm:arg name="config" value="${sf.spec.sbs.config}" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ <hlm:arg name="retry-limit" value="${sf.spec.sbs.retry.limit}" />
+ </hlm:argSet>
+
+ <hlm:argSet id="sbs.main.clean.sbs.var">
+ <hlm:arg name="config" value="${sf.spec.sbs.config}" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ <hlm:arg name="command" value="CLEAN --check" />
+ </hlm:argSet>
+
+ <hlm:argSet id="sbs.main.what.sbs.var">
+ <hlm:arg name="config" value="${sf.spec.sbs.config}" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ <hlm:arg name="command" value="WHAT" />
+ </hlm:argSet>
+
+ <hlm:sbsMakeOptions engine="gmake" id="sbs.toolsbuild.options" />
+ <hlm:sbsMakeOptions engine="gmake" id="sbs.fullbuild.options" />
+
+ <antcall target="sf-list-dir" inheritAll="false">
+ <param name="sf.list.name" value="s60-baseline"/>
+ </antcall>
+
+ <!-- s60 what -->
+ <!--
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
+ <param name="sf.spec.sysdef.version" value="${sf.spec.s60.sysdef.version}"/>
+ <reference refid="sbs.main.what.sbs.var" torefid="sbs.var" />
+ <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+ <reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+ -->
+ <!-- s60 clean main build -->
+ <if><istrue value="${sf.spec.baseline.clean}"/>
+ <then>
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
+ <param name="sf.spec.sysdef.version" value="${sf.spec.s60.sysdef.version}"/>
+ <reference refid="sbs.main.clean.sbs.var" torefid="sbs.var" />
+ <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+ <reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+ </then>
+ </if>
+
+ <antcall target="sf-list-dir" inheritAll="false">
+ <param name="sf.list.name" value="post-s60-clean"/>
+ </antcall>
+
+ <!-- what has been cleaned from baseline PDK by s60 model -->
+ <antcall target="sf-delta-dir" inheritAll="false">
+ <param name="sf.list_a.name" value="s60-baseline"/>
+ <param name="sf.list_b.name" value="post-s60-clean"/>
+ </antcall>
+
+
+ <!-- s60 tools build -->
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
+ <param name="sf.spec.sysdef.version" value ="${sf.spec.s60.sysdef.version}"/>
+ <reference refid="sbs.tools.var" torefid="sbs.var" />
+ <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
+ <reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+
+ <antcall target="sf-list-dir" inheritAll="false">
+ <param name="sf.list.name" value="post-s60-build-tools"/>
+ </antcall>
+
+ <!-- s60 main build -->
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
+ <param name="sf.spec.sysdef.version" value="${sf.spec.s60.sysdef.version}"/>
+ <reference refid="sbs.main.sbs.var" torefid="sbs.var" />
+ <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+ <reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+
+
+ <antcall target="sf-list-dir" inheritAll="false">
+ <param name="sf.list.name" value="post-s60-build-main"/>
+ </antcall>
+
+ <!-- what has been built by tools+2+main -->
+ <antcall target="sf-delta-dir" inheritAll="false">
+ <param name="sf.list_a.name" value="s60-baseline"/>
+ <param name="sf.list_b.name" value="post-s60-build-main"/>
+ </antcall>
+
+ <!-- what has been cleaned and rebuilt -->
+ <antcall target="sf-intersect-dir" inheritAll="false">
+ <param name="sf.list_a.name" value="post-s60-clean_delta"/> <!-- clean list -->
+ <param name="sf.list_b.name" value="post-s60-build-main_delta"/> <!-- built list -->
+ </antcall>
+
+ </target>
+
+</project>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sf-platform/compile.ant.xml Thu Mar 11 13:23:18 2010 +0000
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="SF-COMPILE" xmlns:hlm="http://www.nokia.com/helium">
+
+ <math result="sf.spec.sbs.numberofjobs" operand1="${env.NUMBER_OF_PROCESSORS}" operation="*" operand2="2" datatype="int"/>
+
+ <!-- compile specified sysdef file. called from sf-compile target in sf-platform/build.xml -->
+ <target name="sf-os-compile">
+
+ <antcall target="sf-do-compile" inheritAll="false" inheritRefs="true">
+ <param name="sysdef.configurations.list" value="${sf.spec.os.sysdef.clean.configurations.list}" />
+ <reference refid="sf.spec.os.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+ </target>
+
+ <!-- compile specified sysdef file. called from sf-compile target in sf-platform/build.xml -->
+ <target name="sf-s60-compile">
+ <antcall target="sf-do-compile" inheritAll="false" inheritRefs="true">
+ <param name="sysdef.configurations.list" value="${sf.spec.s60.sysdef.clean.configurations.list}" />
+ <reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+ </target>
+
+ <!-- compile sbs.tools.config and sbs.config. tools built only if its not being unpacked first.
+ note: must be called from sf-os/s60-compile targets, as sys model input needed -->
+ <target name="sf-do-compile">
+ <echo message="INFO Using Helium 7+ for sf-do-compile"/>
+
+ <propertyregex property="sf.unpack.tools" override="true" input="${sf.spec.baseline.getenv_options}" regexp="-i tools" select="true" defaultValue="false" casesensitive="false"/>
+
+ <if> <!-- If tools baseline unpack has not been specified, or its not a "fast" build then try to build them -->
+ <or>
+ <isfalse value="${sf.unpack.tools}"/>
+ <isfalse value="${sf.spec.baseline.enable}"/>
+ <isfalse value="${sf.os.compile.fast}"/>
+ </or>
+ <then>
+ <echo message="INFO Building tools, unpack is not specified"/>
+
+ <!-- sf.spec.sbs.tools.config param used. do-target-build will decide to build sequentially/together -->
+ <antcall target="sf-do-target-compile" inheritAll="false" inheritRefs="true">
+ <param name="i.sf.spec.sbs.config" value="${sf.spec.sbs.tools.config}" />
+ </antcall>
+ </then>
+ <else>
+ <echo message="INFO Skipping tools build, tools were unpacked from ${sf.spec.baseline.location}"/>
+ </else>
+ </if>
+
+ <!-- sf.spec.sbs.config param used. do-target-build will decide to build sequentially/together -->
+ <antcall target="sf-do-target-compile" inheritAll="false" inheritRefs="true">
+ <param name="i.sf.spec.sbs.config" value="${sf.spec.sbs.config}" />
+ </antcall>
+
+ <!-- Export model to BOM, as generate-layers target is no longer called from compile-main target -->
+ <copy file="${build.drive}/output/build/canonical_system_definition_${sysdef.configurations.list}.xml" todir="${build.log.dir}/BOM/"/>
+ </target>
+
+
+ <!-- compile sbs.config list of targets either sequentially or together -->
+ <target name="sf-do-target-compile">
+
+ <if>
+ <istrue value="${sf.os.compile.iterate}"/>
+ <then>
+ <for list="${i.sf.spec.sbs.config}" delimiter="," param="item.sbs.splitconfig">
+ <sequential>
+ <!-- define sbs args, log name etc -->
+ <hlm:sbsinput id="sf.build">
+ <sbsOptions>
+ <arg line="-c @{item.sbs.splitconfig}"/>
+ <arg line="-k" />
+ <arg line="-j ${sf.spec.sbs.numberofjobs}"/>
+ <arg line="-t ${sf.spec.sbs.retry.limit}"/>
+ <arg line="${sf.spec.sbs.options}"/>
+ <arg name="--filters" value=""${sf.spec.sbs.filter.list}""/>
+ <arg name="--logfile" value="${compile.log.dir}/${build.id}_@{item.sbs.splitconfig}_${sf.spec.os.sysdef.clean.configurations.list}_compile.log" />
+ <arg name="--makefile" value="${compile.log.dir}/${build.id}_@{item.sbs.splitconfig}_${sf.spec.os.sysdef.clean.configurations.list}_Makefile" />
+ </sbsOptions>
+ </hlm:sbsinput>
+
+ <!-- call helium's compile-main target using the sbsInput args defined above -->
+ <echo message="INFO Iterative compile building target: @{item.sbs.splitconfig}"/>
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <param name="sbs.inputs.list" value="sf.build"/>
+ </antcall>
+
+ </sequential>
+ </for>
+ </then>
+ <else>
+ <!-- turn comma separated list into sbs friendly -c list, and _ separated list for friendly log names -->
+ <propertyregex property="i.sf.spec.sbs.config.expanded" override="true" input="${i.sf.spec.sbs.config}" regexp="(,)" replace=" -c " defaultValue="${i.sf.spec.sbs.config}" global="true" casesensitive="false"/>
+ <propertyregex property="i.sf.spec.sbs.config.expanded.logname" override="true" input="${i.sf.spec.sbs.config}" regexp="(,)" replace="_" defaultValue="${i.sf.spec.sbs.config}" global="true" casesensitive="false"/>
+ <echo message="INFO Target : ${i.sf.spec.sbs.config.expanded}"/>
+ <echo message="INFO Logname: ${i.sf.spec.sbs.config.expanded.logname} + Config: ${sf.spec.os.sysdef.clean.configurations.list}"/>
+
+ <!-- TODO: Make this use above compile-main call? -->
+
+ <!-- define sbs args, log name etc -->
+ <hlm:sbsinput id="sf.build">
+ <sbsOptions>
+ <arg line="-c ${i.sf.spec.sbs.config.expanded}"/>
+ <arg line="-k" />
+ <arg line="-j ${sf.spec.sbs.numberofjobs}"/>
+ <arg line="-t ${sf.spec.sbs.retry.limit}"/>
+ <arg line="${sf.spec.sbs.options}"/>
+ <arg name="--filters" value=""${sf.spec.sbs.filter.list}""/>
+ <arg name="--logfile" value="${compile.log.dir}/${build.id}_${i.sf.spec.sbs.config.expanded.logname}_${sf.spec.os.sysdef.clean.configurations.list}_compile.log" />
+ <arg name="--makefile" value="${compile.log.dir}/${build.id}_${i.sf.spec.sbs.config.expanded.logname}_${sf.spec.os.sysdef.clean.configurations.list}_Makefile" />
+ </sbsOptions>
+ </hlm:sbsinput>
+
+ <!-- call helium's compile-main target using the sbsInput args defined above -->
+ <echo message="INFO Building target(s): ${i.sf.spec.sbs.config.expanded}"/>
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <param name="sbs.inputs.list" value="sf.build"/>
+ </antcall>
+
+ </else>
+ </if>
+ </target>
+
+</project>
+
--- a/sf-platform/platform_props.ant.xml Mon Mar 08 14:18:19 2010 +0000
+++ b/sf-platform/platform_props.ant.xml Thu Mar 11 13:23:18 2010 +0000
@@ -15,7 +15,7 @@
<property name="sf.spec.toolsbaseline.select" value="location" />
<property name="sf.spec.toolsbaseline.location" value="\\v800008\Builds01\PDT\PDT_b50" /> <!-- for TEF etc -->
- <property name="sf.spec.syncsource.usecache" value="true"/>
+ <property name="sf.spec.sourcesync.usecache" value="true"/>
<!-- generate dir list(s) of epoc32 tree -->
<property name="sf.spec.dirlist.enable" value="true"/>