build.xml
author Shabe Razvi <shaber@symbian.org>
Fri, 11 Jun 2010 15:56:59 +0100
changeset 1097 561033b10e0f
parent 1056 0d7b12764c40
child 1110 488afbbbaebd
permissions -rw-r--r--
Major rework to enable rebuilds of the platform from single sf-build call - Change the way that sources and system model are selected: now property based - Split sources.csv to have publicly available http repos only; internal repos are in sources_rnd.csv - System model output in BOM renamed to system_model.xml rather than canonical_system_definition_{config}.xml to make reuse predictable - Public property configuration public_override_props.ant.xml now used. - Fix all exports to run based upon configuration specified (no export configuration makes SBS assume RVCT is being used, which is not available to all) - sf.production.build MUST be defined and TRUE to enable production build properties, public config is DEFAULT behaviour

<?xml version="1.0" encoding="UTF-8"?>
<project name="SF-CONFIG" xmlns:hlm="http://www.nokia.com/helium">
  <!-- location of this config -->
  <dirname property="sf.config.dir" file="${ant.file.SF-CONFIG}"/>
  
  <property name="sf.subproject.path" value=""/>
  <property name="sf.project.location" value="${sf.config.dir}/../build/config/${sf.subproject.path}"/>
  <property name="sf.project.name" value="job"/>
  
  <!-- Override Helium defaults to allow winscw builds without RVCT -->
  <target name="check-env-arm-license"/>
  <target name="get-arm-license"/>
  <target name="set-arm-version"/>

  <!-- import helium task definitions to allow usage of ant-contrib tasks -->
  <import file="${helium.dir}/helium_preinclude.ant.xml"/>
   
  <!-- import job properties -->
  <if><isfalse value="${sf.production.build}"/>
    <then>
      <echo message="INFO Using Public properties defined in ${sf.project.location}/public_override_props.ant.xml"/>
      <import file="${sf.project.location}/public_override_props.ant.xml" optional="yes"/>
    </then>
  </if>
  <import file="${sf.project.location}/${sf.project.name}_props.ant.xml" optional="yes"/>
  
  <!-- set sf.spec.job.name and sf.spec.job.codeline if they are not specified in the project's job_props.ant.xml -->
  <propertyregex override="yes" property="jobname" input="${sf.subproject.path}" regexp=".*[\\/]([^\\^/]+)" replace="\1"/>
  <property name="jobname" value="${sf.subproject.path}"/>
  <propertyregex override="yes" property="codeline" input="${sf.subproject.path}" regexp="^([^\\^/]+)[\\/].*" replace="\1"/>
  <property name="codeline" value="default"/>
  <property name="sf.spec.job.name" value="${jobname}"/>
  <property name="sf.spec.job.codeline" value="${codeline}"/>
  
  <!-- import project properties/targets/references -->
  <import file="sf-${sf.project.type}/build.xml" />
  
  <!-- import job references -->
  <import file="${sf.project.location}/${sf.project.name}_refs.ant.xml" optional="yes"/>
  
</project>