Add initial support for Helium7 for the platform.
* Use sf.spec.sbs.options to pass args direct to Raptor.
* Backwards compatibility with Helium5 maintained.
* Listdir function to be provided by sbs check filter, which will be added later.
--- a/common/build.xml Thu Feb 18 18:00:42 2010 +0000
+++ b/common/build.xml Wed Mar 03 19:46:30 2010 +0000
@@ -89,6 +89,16 @@
</or>
<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>
--- a/sf-platform/build.xml Thu Feb 18 18:00:42 2010 +0000
+++ b/sf-platform/build.xml Wed Mar 03 19:46:30 2010 +0000
@@ -11,10 +11,22 @@
<!-- import package references -->
<import file="${sf.platform.config.dir}/platform_refs.ant.xml" optional="true"/>
-
- <!--
- * Property defaults
- -->
+
+ <!-- make this conditional! -->
+ <import file="${sf.platform.config.dir}/compile.ant.xml"/>
+ <!-- pre helium 7+ should import compile targets from compile-hlm-5.ant.xml >
+ <if>
+ <or>
+ <equals arg1="${helium.version}" arg2="7.0"/>
+ <equals arg1="${last.major.helium.version}" arg2="7.0"/>
+ </or>
+ <then>
+
+ </then>
+ <else>
+ <import file="${sf.platform.config.dir}/compile-hlm-5.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"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sf-platform/compile-hlm-5.ant.xml Wed Mar 03 19:46:30 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 Wed Mar 03 19:46:30 2010 +0000
@@ -0,0 +1,122 @@
+<?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>
+ </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}_compile.log" />
+ <arg name="--makefile" value="${compile.log.dir}/${build.id}_@{item.sbs.splitconfig}_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}"/>
+
+ <!-- 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}_compile.log" />
+ <arg name="--makefile" value="${compile.log.dir}/${build.id}_${i.sf.spec.sbs.config.expanded.logname}_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>
+