<?xml version="1.0" encoding="UTF-8"?>
<project name="SF-PLATFORM-CONFIG" xmlns:hlm="http://www.nokia.com/helium">
<!-- location of this config -->
<dirname property="sf.platform.config.dir" file="${ant.file.SF-PLATFORM-CONFIG}"/>
<!--
* Property defaults
-->
<!-- workaround until GenXML can merge v2.0.0 fragments -->
<target name="create-canonical-sysdef-file">
<runtarget target="preprocess-sysdef-files"/>
<echo message="Exporting preprocessed System Definition"/>
<if><istrue value="${sf.spec.splitbuild}"/>
<then>
<if><istrue value="${sf.spec.os.skipbuild}" />
<then><echo message="Skipping OS sysdef creation"/></then>
<else>
<!-- TODO use better method to export or wait for GenXML fix?-->
<copy file="${build.output.dir}\build\input\0000000000000001_system_model_os.xml"
tofile="${canonical.sysdef.file}" failonerror="false" verbose="true"/>
</else>
</if>
<if><istrue value="${sf.spec.s60.skipbuild}" />
<then><echo message="Skipping S60 sysdef creation"/></then>
<else>
<!-- TODO use better method to export or wait for GenXML fix?-->
<copy file="${build.output.dir}\build\input\0000000000000001_system_model_s60.xml"
tofile="${canonical.sysdef.file}" failonerror="false" verbose="true"/>
</else>
</if>
</then>
<else>
<!-- TODO use better method to export or wait for GenXML fix?-->
<copy file="${build.output.dir}\build\input\0000000000000001_system_model.xml"
tofile="${canonical.sysdef.file}" failonerror="false" verbose="true"/>
</else>
</if>
</target>
<!--
== Name: PREPROCESS-SYSDEF-FILES
==
== Desc: Override of default target in order to deal with symbian os
== system_definition.xml that does not have /sf source prefix
==
== TODO get this moved as a Helium core target?
-->
<target name="preprocess-sysdef-files">
<mkdir dir="${build.output.dir}/build/input"/>
<delete verbose="true">
<fileset dir="${build.output.dir}/build/input/" includes="**"/>
</delete>
<for param="file">
<resources refid="system.definition.files"/>
<sequential>
<copy todir="${build.output.dir}/build/input" verbose="true">
<fileset file="@{file}"/>
<filterchain>
<replaceregex pattern="bldFile="os" replace="bldFile="sf\\\\os" flags="gi"/>
<replaceregex pattern="mrp="os" replace="mrp="sf\\\\os" flags="gi"/>
<replaceregex pattern="bldFile="mw" replace="bldFile="sf\\\\mw" flags="gi"/>
<replaceregex pattern="mrp="mw" replace="mrp="sf\\\\mw" flags="gi"/>
<replaceregex pattern="bldFile="app" replace="bldFile="sf\\\\app" flags="gi"/>
<replaceregex pattern="mrp="app" replace="mrp="sf\\\\app" flags="gi"/>
<replaceregex pattern="bldFile="tools" replace="bldFile="sf\\\\tools" flags="gi"/>
<replaceregex pattern="mrp="tools" replace="mrp="sf\\\\tools" flags="gi"/>
<replaceregex pattern="bldFile="adaptation" replace="bldFile="sf\\\\adaptation" flags="gi"/>
<replaceregex pattern="mrp="adaptation" replace="mrp="sf\\\\adaptation" flags="gi"/>
<expandproperties/>
</filterchain>
<mapper>
<scriptmapper language="jep" src="${helium.dir}/tools/common/jep/unique_filename.jep"/>
</mapper>
</copy>
</sequential>
</for>
</target>
<!--
== Name: SF-COMPILE
==
== Desc: Override of common sf-compile target defined in
== common\build.xml
==
== os build will be skipped if sf.spec.os.skipbuild=true
== s60 build will be skipped if sf.spec.s60.skipbuild=true
==
-->
<target name="sf-compile">
<!-- TODO clean up to single target once genxml v2.0.0 merge is fixed -->
<if><istrue value="${sf.spec.splitbuild}"/>
<then>
<if><istrue value="${sf.spec.os.skipbuild}" />
<then><echo message="Skipping OS build"/></then>
<else><runtarget target="sf-os-compile"/></else></if>
<if><istrue value="${sf.spec.s60.skipbuild}" />
<then><echo message="Skipping S60 build"/></then>
<else><runtarget target="sf-s60-compile"/></else></if>
</then>
<else>
<!-- TODO targets for single sysdef build -->
<runtarget target="sf-os-compile"/>
</else>
</if>
<!-- always run cenrep -->
<runtarget target="sf-s60-create-cenrep"/>
</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">
<hlm:argSet id="sbs.tools2.var">
<hlm:arg name="config" value="tools2_rel.whatlog" />
<hlm:arg name="singlejob" value="false" />
<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
</hlm:argSet>
<hlm:argSet id="sbs.tools2.clean.var">
<hlm:arg name="config" value="tools2_rel.whatlog" />
<hlm:arg name="singlejob" value="false" />
<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
<hlm:arg name="command" value="CLEAN --check" />
</hlm:argSet>
<hlm:argSet id="sbs.tools.var">
<hlm:arg name="config" value="tools_rel.whatlog" />
<hlm:arg name="singlejob" value="true" />
<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
</hlm:argSet>
<hlm:argSet id="sbs.tools.clean.var">
<hlm:arg name="config" value="tools_rel.whatlog" />
<hlm:arg name="singlejob" value="true" />
<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.sbs.var">
<hlm:arg name="config" value="${sf.spec.sbs.config}" />
<hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
</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" />
<!-- 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 what -->
<!--
<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.what.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>
-->
<!-- OS 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="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>
<!-- OS tools2 build first-->
<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>
<!-- OS tools build after tools2 -->
<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>
<if><isset property="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: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 -->
<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>
<!-- what has been cleaned and not rebuilt -->
</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">
<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: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: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">
<echo message="INFO Generating CenRep"/>
<exec executable="${helium.dir}/../ConfigurationTool/cli_build.cmd" dir="${build.drive}" failonerror="false" output="${build.log.dir}/${build.id}_create_cenrep.log">
<arg value="-master_conf"/>
<arg value="s60"/>
<arg value="-impl"/>
<arg value="/epoc32/rom/config/confml_data/s60"/>
<arg value="-confml"/>
<arg value="/epoc32/rom/config/confml_data/s60"/>
<arg value="-ignore_errors"/>
</exec>
<if><available file="${build.drive}/cli_build_error.log" />
<then>
<echo message="INFO CenRep error log found, moving to ${build.log.dir}" />
<move file="${build.drive}/cli_build_error.log" todir="${build.log.dir}" failonerror="false"/>
</then>
</if>
</target>
<!-- import sf-common-config -->
<import file="../common/build.xml" />
</project>