sf-platform/compile-hlm-5.ant.xml
author Simon Howkins <simonh@symbian.org>
Tue, 19 Oct 2010 11:11:40 +0100
changeset 1309 2ea5b5b66973
parent 1170 6dad376b9835
permissions -rw-r--r--
Adjusted release tagging, so that it clones from the package source, not dst, and hence it's much less likely that the tagging operation will create multiple heads on the TAGS branch.

<?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>