Add Helium 7 support for package builds.
- During operation, if last.major.helium.version is detected as 7.0 then it will use new sbsinput mechanism.
- Restore sf-postbuild dependency on sf-build-noprep target
--- a/build.xml Thu Feb 04 12:16:49 2010 +0000
+++ b/build.xml Tue Feb 16 17:50:17 2010 +0000
@@ -27,6 +27,16 @@
<property name="sf.spec.job.name" value="${jobname}"/>
<property name="sf.spec.job.codeline" value="${codeline}"/>
+ <!-- override helium 7 defaults to operate like helium 5.
+ *.log.dir props dont exist yet so need to be set now, otherwise they
+ become immutable after helium.ant.xml import -->
+
+ <property name="prep.log.dir" value="${build.drive}/output/logs"/>
+ <property name="compile.log.dir" value="${build.drive}/output/logs"/>
+ <property name="post.log.dir" value="${build.drive}/output/logs"/>
+ <property name="archive.log.dir" value="${build.drive}/output/logs"/>
+ <property name="signals.log.dir" value="${build.drive}/output/logs"/>
+
<!-- import project properties/targets/references -->
<import file="sf-${sf.project.type}/build.xml" />
--- a/common/build.xml Thu Feb 04 12:16:49 2010 +0000
+++ b/common/build.xml Tue Feb 16 17:50:17 2010 +0000
@@ -54,7 +54,7 @@
<property name="base_release.getenv_options" value="${sf.spec.baseline.getenv_options}"/>
<property name="ccm.user.password" value="set_to_any_value_to_skip_scm_checks__for_helium_5"/>
<property name="ats.drive" value="${sf.spec.ats_worker.drive}"/>
-
+ <property name="skip.sbs.layer.generation" value="true"/> <!-- helium 7: needs to be predefined before hlm import -->
<if>
<isset property="sf.spec.sbs.numberofjobs"/>
<then>
@@ -89,6 +89,21 @@
</else>
</if>
+ <!-- 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>
+ <then>
+ <property name="schema.new" value="true"/>
+ </then>
+ </if>
+
+ <!--
+ - END OF PROPERTY DEFINITIONS, TARGETS START HERE
+ -->
+
<target name="sf-prep" depends="sf-prep-announce,prep-drive,init-build-area,create-bom,log-build-env">
<!-- Test for the disk space we would like for this build -->
<fail>
@@ -439,7 +454,7 @@
</target>
<!-- This target is overridden in platform builds, but used directly in package builds -->
- <target name="sf-build-noprep" depends="sf-truclean,sf-model-from-project,sf-compile">
+ <target name="sf-build-noprep" depends="sf-truclean,sf-model-from-project,sf-compile,sf-postbuild">
<echo>[SF-BUILD-NOPREP]</echo>
</target>
--- a/common/common_props.ant.xml Thu Feb 04 12:16:49 2010 +0000
+++ b/common/common_props.ant.xml Tue Feb 16 17:50:17 2010 +0000
@@ -17,6 +17,12 @@
<property name="sf.spec.pdt.root" value="${env.PDT_HOME}"/> <!-- e.g. C:\Symbian\Tools\PDT_1.0\ -->
+ <!-- comma separated sbs filter list -->
+ <property name="sf.spec.sbs.filter.list" value=""/>
+
+ <!-- options to pass directly to sbs e.g. pp=on for parallel parsing -->
+ <property name="sf.spec.sbs.options" value=""/>
+
<property name="sf.spec.sbs.config" value="armv5"/>
<!-- sbs -t param -->
--- a/sf-package/build.xml Thu Feb 04 12:16:49 2010 +0000
+++ b/sf-package/build.xml Tue Feb 16 17:50:17 2010 +0000
@@ -25,11 +25,66 @@
<arg value="--sources=${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}"/>
</exec>
- <runtarget target="sf-package-compile"/>
+
+ <!-- helium 7+ should use new sf-package-compile target -->
+ <if>
+ <or>
+ <equals arg1="${helium.version}" arg2="7.0"/>
+ <equals arg1="${last.major.helium.version}" arg2="7.0"/>
+ </or>
+ <then>
+ <runtarget target="sf-package-compile"/>
+ </then>
+ <else>
+ <runtarget target="sf-package-compile-hlm-5"/>
+ </else>
+ </if>
+
</target>
- <target name="sf-package-compile" depends="sf-compile-options">
+
+ <target name="sf-package-compile">
+
+ <!-- build stuff -->
+ <for list="${sf.spec.sbs.config}" delimiter="," param="item.sbs.splitconfig">
+ <sequential>
+
+ <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>
+
+ <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="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
+ <param name="sbs.inputs.list" value="sf.build"/>
+ <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+ </sequential>
+ </for>
+
+
+ <!-- CHECK -->
+ <exec executable="cmd" dir="${build.drive}/" output="${build.drive}/output\logs\build_check_compile.log">
+ <arg value="/c sbs.bat -s ${build.drive}/output\build\canonical_system_definition_SF.xml -k -c tools2_rel -c winscw -c armv5 -j 32 --check -m ${build.drive}/output\logs\build_check_Makefile"/>
+ <!-- argument of -j option can be parameterized with: ${number.of.threads} -->
+ </exec>
+
+ </target>
+
+
+ <target name="sf-package-compile-hlm-5">
+
<for list="${sf.spec.sbs.config}" delimiter="," param="item.sbs.splitconfig">
<sequential>
<echo message="INFO [Iterative compile] Building target: @{item.sbs.splitconfig}"/>
--- a/sf-platform/build.xml Thu Feb 04 12:16:49 2010 +0000
+++ b/sf-platform/build.xml Tue Feb 16 17:50:17 2010 +0000
@@ -17,7 +17,7 @@
-->
<!-- MattD - workaround until generating a model from package definitions works-->
- <target name="sf-build-noprep" depends="sf-platform-bootstrap,sf-compile">
+ <target name="sf-build-noprep" depends="sf-platform-bootstrap,sf-compile,sf-postbuild">
<echo>[SF-BUILD-NOPREP] (platform)</echo>
<echo>[SF-BUILD-NOPREP] WARNING: Not generating model from packages</echo>
</target>