sf-platform/compile-hlm-5.ant.xml
author Simon Howkins <simonh@symbian.org>
Wed, 27 Oct 2010 16:22:14 +0100
changeset 1316 0b4a09013baf
parent 1170 6dad376b9835
permissions -rw-r--r--
Added copyright messages

<?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}" />
          <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}" />
                  <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}" />
                  <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}" />
              <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}" />
          <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>

</project>