sf-package/build.xml
author Simon Howkins <simonh@symbian.org>
Mon, 07 Dec 2009 17:21:55 +0000
changeset 814 11c237c9ad00
parent 711 7a9d3b010a52
child 899 d80a65072ed8
permissions -rw-r--r--
Changed mergeXML.pl to use a better version of the XML printing algorithm, so it can generate well-formed content if the input includes some rogue &s or <>s.

<?xml version="1.0" encoding="UTF-8"?>
<project name="SF-PACKAGE-CONFIG" xmlns:hlm="http://www.nokia.com/helium">
  <!-- location of this config -->
  <dirname property="sf.package.config.dir" file="${ant.file.SF-PACKAGE-CONFIG}"/>
  
  <!-- import codeline-specific properties -->
  <import file="${sf.package.config.dir}/${sf.spec.job.codeline}_props.ant.xml" optional="yes"/>
  
  <!-- import package properties -->
  <import file="${sf.package.config.dir}/package_props.ant.xml" />
  
  <!-- import common properties/targets/references -->
  <import file="../common/build.xml" />
  
  <!-- import package references -->
  <import file="${sf.package.config.dir}/package_refs.ant.xml" />
  
  <target name="sf-compile">
  
    <!-- Check that package_definition is not in v 3.0.0 otherwise transforms it to 2.0.1 -->
    <echo message="Check that model file is in a version usable by Raptor"/>
    <exec executable="perl" dir="${sf.common.config.dir}/sysdefdowngrade" failonerror="false" output="${build.log.dir}/sysdefdowngrade.log">
      <arg value="sysdefdowngrade.pl"/>
      <arg value="--model=${build.drive}/${sf.spec.systemdefinition.location}"/>
      <arg value="--sources=${sf.spec.sourcesync.sourcespecdir}/${sf.spec.sourcesync.sourcespecfile}"/>
    </exec>
    
    <runtarget target="sf-package-compile"/>
  </target>
  
  <target name="sf-package-compile" depends="sf-compile-options">
    
    <for list="${sf.spec.sbs.config}" delimiter="," param="item.sbs.splitconfig">
      <sequential>
        <echo message="INFO [Iterative compile] Building target: @{item.sbs.splitconfig}"/>
        
        <!-- Do CLEAN
        <hlm:argSet id="sbs.iterate.clean.var">
          <hlm:arg name="config" value="@{item.sbs.splitconfig}" />
          <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
          <hlm:arg name="command" value="CLEAN"/>
        </hlm:argSet>
        <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}" />
          <reference refid="sbs.iterate.clean.var" torefid="sbs.var" />
          <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
          <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
        </antcall>
        -->

        <!-- Do BUILD -->
        <hlm:argSet id="sbs.main.iterate.sbs.var">
          <hlm:arg name="config" value="@{item.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="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
          <reference refid="sbs.main.iterate.sbs.var" torefid="sbs.var" />
          <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
          <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>
  
</project>