sf-platform/build.xml
author shaberazvi@LON-ENGBUILD88.prod.ad.symbian.intra
Fri, 27 Mar 2009 13:13:04 +0000
changeset 52 c54ae3330cbd
parent 0 571f289c60b8
child 55 c10840c6fcbb
permissions -rw-r--r--
Add config changes in order to support s60 and os platform builds

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

  <!--
  
  * Load platform specific properties. Mandatory that this file exists otherwise
  * the target will fail.
  
   -->
  <loadproperties srcFile="${sf.platform.config.dir}/platform.properties"/>
  
  <!-- workaround until GenXML can merge v2.0.0 fragments -->
  <target name="create-canonical-sysdef-file">
            
       <if>
          <!-- TODO use scripting to match this -->
          <equals arg1="${sf.spec.sysdef.version}" arg2="1.4.0" /> 
          <then>
            <echo message="Using System Definition v1.4.0 "/>
            <runtarget target="compile.create-canonical-sysdef-file"/>
          </then>
          <else>
            <runtarget target="preprocess-sysdef-files"/>  
            <echo message="Exporting preprocessed System Definition"/> 
            
            <!-- TODO use better method to export or wait for GenXML fix?-->
            <copy file="${build.output.dir}\build\input\0000000000000001_system_definition.xml" 
                  tofile="${canonical.sysdef.file}" failonerror="true" 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=&quot;os" replace="bldFile=&quot;sf\\\\os" flags="gi"/>
                        <replaceregex pattern="mrp=&quot;os" replace="mrp=&quot;sf\\\\os" flags="gi"/>
                        <replaceregex pattern="bldFile=&quot;mw" replace="bldFile=&quot;sf\\\\mw" flags="gi"/>
                        <replaceregex pattern="mrp=&quot;mw" replace="mrp=&quot;sf\\\\mw" flags="gi"/>
                        <replaceregex pattern="bldFile=&quot;app" replace="bldFile=&quot;sf\\\\app" flags="gi"/>
                        <replaceregex pattern="mrp=&quot;app" replace="mrp=&quot;sf\\\\app" 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">

       <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>
       
  </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.tools.var">
                <hlm:arg name="config" value="${sf.spec.sbs.tools.config}" />
                <hlm:arg name="singlejob" value="true" />
                <hlm:arg name="enable-filter" value="true" />
        </hlm:argSet>

        <hlm:argSet id="sbs.main.sbs.var">
                <hlm:arg name="config" value="${sf.spec.sbs.config}" />
                <hlm:arg name="enable-filter" value="true" />
        </hlm:argSet>

        <hlm:sbsMakeOptions engine="gmake" id="sbs.toolsbuild.options" />
        <hlm:sbsMakeOptions engine="gmake" id="sbs.fullbuild.options" />

        <!-- OS tools 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.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>

        <!-- 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>            
  </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="true" />
    		</hlm:argSet>
    
    		<hlm:argSet id="sbs.main.sbs.var">
          			<hlm:arg name="config" value="${sf.spec.sbs.config}" />
          			<hlm:arg name="enable-filter" value="true" />
    		</hlm:argSet>
        
    		<hlm:sbsMakeOptions engine="gmake" id="sbs.toolsbuild.options" />
    		<hlm:sbsMakeOptions engine="gmake" id="sbs.fullbuild.options" />
    
        <!-- s60 clean 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>
    
    		<!-- s60 clean 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>
    
    		<!-- s60 postbuild bldmelast using ebs -->
    		<antcall target="compile-main" inheritAll="false">
          			<param name="build.system" value="ebs" />
          			<param name="sysdef.configurations.list" value="S60_bldmelast" />
          			<reference refid="sf.spec.s60.system.definition.files" torefid="system.definition.files" />
    		</antcall>

	</target>
  
  <!-- import sf-common-config -->
  <import file="../common/build.xml" />
  
</project>