sf-package/build.xml
author Simon Howkins <simonh@symbian.org>
Fri, 07 Aug 2009 14:33:52 +0100
changeset 282 aee074ee2646
parent 267 779cc88ed845
child 284 626d3847cf2a
permissions -rw-r--r--
Changed preference for selecting package definition files, so that it takes the one from our tree in preference to the one in the package itself. This means that we can just delete items from our tree when we're happy to switch to using the one in the package (as this will vary from package to package). Added sorting of the attributes when outputting the system definition, to match the de facto standard in the system definition we started with.

<?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 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">
    
    <hlm:sbsMakeOptions engine="gmake" id="sbs.fullbuild.options"/>
    <hlm:sbsMakeOptions engine="gmake" id="sbs.toolsbuild.options"/>
    
    <!-- BUILD tools2 CLEAN -->
    <hlm:argSet id="sbs.tools2.clean.var">
      <hlm:arg name="config" value="tools2" />
      <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.tools2.clean.var" torefid="sbs.var" />
      <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
      <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
    </antcall>
    
    <!-- BUILD tools2 -->
    <hlm:argSet id="sbs.tools2.var">
      <hlm:arg name="config" value="tools2.whatlog" />
      <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="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
      <reference refid="sbs.tools2.var" torefid="sbs.var" />
      <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
      <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
    </antcall>
    
    <!-- BUILD tools CLEAN -->
    <hlm:argSet id="sbs.tools.clean.var">
      <hlm:arg name="config" value="tools"/>
      <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.tools.clean.var" torefid="sbs.var" />
      <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
      <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
    </antcall>
    
    <!-- BUILD tools -->
    <hlm:argSet id="sbs.tools.var">
      <hlm:arg name="config" value="tools.whatlog"/>
      <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="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
      <reference refid="sbs.tools.var" torefid="sbs.var" />
      <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
      <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
    </antcall>
    
    <!-- BUILD winscw CLEAN -->
    <hlm:argSet id="sbs.winscw.clean.var">
      <hlm:arg name="config" value="winscw" />
      <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.winscw.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>
    
    <!-- BUILD winscw -->
    <hlm:argSet id="sbs.winscw.var">
      <hlm:arg name="config" value="winscw.whatlog" />
      <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="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
      <reference refid="sbs.winscw.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>
    
    <!-- BUILD armv5 CLEAN -->
    <hlm:argSet id="sbs.armv5.clean.var">
      <hlm:arg name="config" value="armv5" />
      <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.armv5.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>
    
    <!-- BUILD armv5 -->
    <hlm:argSet id="sbs.armv5.var">
      <hlm:arg name="config" value="armv5.whatlog" />
      <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="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
      <reference refid="sbs.armv5.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>
    
    <!-- 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 tools -c tools2 -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>