buildframework/helium/helium.ant.xml
changeset 217 0f5e3a7fb6af
parent 179 d8ac696cc51f
child 587 85df38eb4012
equal deleted inserted replaced
181:59bb7c4d6172 217:0f5e3a7fb6af
    25     Main full build targets and properties
    25     Main full build targets and properties
    26     </description>
    26     </description>
    27     
    27     
    28     <import file="build-jar.ant.xml"/>
    28     <import file="build-jar.ant.xml"/>
    29     
    29     
    30     <!-- Check the Ant version is what we expect. -->
       
    31     <property name="required.ant.version" value="1.7.0"/>
       
    32     <fail message="Incorrect version of Ant found. Please check you have Ant ${required.ant.version}.">
       
    33         <condition>
       
    34             <and>
       
    35                 <os family="windows"/>
       
    36                 <not>
       
    37                     <antversion exactly="${required.ant.version}"/>
       
    38                 </not>
       
    39             </and>
       
    40         </condition>
       
    41     </fail>
       
    42     
       
    43     
       
    44     <!-- Load the current Helium version. -->
    30     <!-- Load the current Helium version. -->
       
    31     <!-- @property helium.version
       
    32     @type string
       
    33     @scope private
       
    34     -->
    45     <property file="${helium.dir}/config/version.txt"/>
    35     <property file="${helium.dir}/config/version.txt"/>
    46 
    36 
    47     <!-- Libraries
    37     <!-- Libraries
    48     ======================================================================-->
    38     ======================================================================-->
    49     <import file="helium_preinclude.ant.xml"/>
    39     <import file="helium_preinclude.ant.xml"/>
    50     
    40     
       
    41     <!-- The path where Helium-specific outputs are written to.
       
    42     @type string
       
    43     @scope private
       
    44     -->
    51     <property name="helium.build.dir" location="${helium.dir}/build"/>
    45     <property name="helium.build.dir" location="${helium.dir}/build"/>
    52     
    46     
    53     <hlm:typedef file="${helium.dir}/tools/common/common.antlib.xml" uri="http://www.nokia.com/helium"/> 
    47     <hlm:typedef file="${helium.dir}/tools/common/common.antlib.xml" uri="http://www.nokia.com/helium"/> 
    54     
    48     
       
    49     <!-- Location of generated logging config.
       
    50     @type string
       
    51     @scope private
       
    52     -->
    55     <property name="logging.output.file" location="${cache.dir}/logging.${env.PID}.conf" />
    53     <property name="logging.output.file" location="${cache.dir}/logging.${env.PID}.conf" />
    56     <fmpp sourceFile="${helium.dir}/config/logging.conf.ftl" outputFile="${logging.output.file}" quiet="true">
    54     <fmpp sourceFile="${helium.dir}/config/logging.conf.ftl" outputFile="${logging.output.file}" quiet="true">
    57         <data expandProperties="yes">
    55         <data expandProperties="yes">
    58             ant: antProperties()
    56             ant: antProperties()
    59         </data>
    57         </data>
    60     </fmpp>
    58     </fmpp>
    61      
    59      
    62     <!-- Properties
    60     <!-- Properties
    63     ======================================================================-->
    61     ======================================================================-->
       
    62     <!-- Used to specify which team configuration is being used. These configuration files are under /mc/mc_build/teams.
       
    63     @type string
       
    64     -->
    64     <property name="team" value="${env.TEAM}"/>
    65     <property name="team" value="${env.TEAM}"/>
    65 
    66 
    66     <!-- See if 'bn' is defined as a shortcut for build.number. -->
    67     <!-- See if 'bn' is defined as a shortcut for build.number. -->
    67     <if>
    68     <if>
    68         <isset property="bn"/>
    69         <isset property="bn"/>
    69         <then>
    70         <then>
       
    71             <!-- Build number
       
    72             @type integer
       
    73             @scope public
       
    74             -->
    70             <property name="build.number" value="${bn}"/>
    75             <property name="build.number" value="${bn}"/>
    71         </then>
    76         </then>
    72     </if>
    77     </if>
    73     
    78     
    74     <!-- If build.drive not define then search the next free drive -->
    79     <!-- If build.drive not define then search the next free drive -->
    75     <if>
    80     <if>
    76         <not>
    81         <not>
    77             <isset property="build.drive"/>        
    82             <isset property="build.drive"/>
    78         </not>    
    83         </not>    
    79         <then>
    84         <then>
       
    85             <!-- used to track if build.drive has predefined or not
       
    86             @type flag
       
    87             @scope private
       
    88             -->
    80             <property name="build.drive.notdefined" value="true"/> 
    89             <property name="build.drive.notdefined" value="true"/> 
    81             <exec osfamily="windows" executable="python" failonerror="true" outputproperty="build.drive">
    90             <exec osfamily="windows" executable="python" failonerror="true" outputproperty="build.drive">
    82                 <arg value="${helium.dir}/tools/common/python/scripts/searchnextdrive.py"/>               
    91                 <arg line="-m searchnextdrive"/>               
    83             </exec>
    92             </exec>
    84             <if>
    93             <if>
    85                 <equals arg1="${build.drive}" arg2="Error: No free drive!"/>
    94                 <equals arg1="${build.drive}" arg2="Error: No free drive!"/>
    86                 <then>            
    95                 <then>            
    87                     <fail message="ERROR: Failed to assign build drive, please check you are not running out of drives." />    
    96                     <fail message="ERROR: Failed to assign build drive, please check you are not running out of drives." />    
    95         <and>
   104         <and>
    96             <isset property="major.version"/>
   105             <isset property="major.version"/>
    97             <isset property="minor.version"/>
   106             <isset property="minor.version"/>
    98         </and>
   107         </and>
    99         <then>
   108         <then>
       
   109             <!-- This Defaults to the ${major.version}.${minor.version} combo and is available so that 1 number can be used (dot can be removed)
       
   110             @type string
       
   111             -->
   100             <property name="core.build.version" value="${major.version}.${minor.version}"/>
   112             <property name="core.build.version" value="${major.version}.${minor.version}"/>
   101         </then>
   113         </then>
   102         <else>
   114         <else>
       
   115             <!-- This Defaults to the ${major.version}.${minor.version} combo and is available so that 1 number can be used (dot can be removed)
       
   116             @type string
       
   117             -->
   103             <property name="core.build.version" value="${env.USERNAME}"/>
   118             <property name="core.build.version" value="${env.USERNAME}"/>
   104         </else>
   119         </else>
   105     </if>
   120     </if>
   106     
   121     
   107     <if>
   122     <if>
   121                     <property name="build.tag.ext" value=""/>
   136                     <property name="build.tag.ext" value=""/>
   122                     <property name="build.tag" value=""/>
   137                     <property name="build.tag" value=""/>
   123                 </else>
   138                 </else>
   124             </if>
   139             </if>
   125             <!-- Use an internal directory to store text files for assigning build number information. -->
   140             <!-- Use an internal directory to store text files for assigning build number information. -->
       
   141             <!-- The directory where the build integer database text files are stored.
       
   142             @type string
       
   143             @scope private
       
   144             -->
   126             <property name="build.int.db.dir" location="${publish.root.dir}/internal/build_int_db"/>
   145             <property name="build.int.db.dir" location="${publish.root.dir}/internal/build_int_db"/>
   127             <mkdir dir="${build.int.db.dir}"/>
   146             <mkdir dir="${build.int.db.dir}"/>
   128             <property name="build.int.db.file" value="${build.int.db.dir}/${build.name}_${core.build.version}_${build.tag}_build_int_db.txt"/>
   147             <property name="build.int.db.file" value="${build.int.db.dir}/${build.name}_${core.build.version}_${build.tag}_build_int_db.txt"/>
   129             <if>
   148             <if>
   130                 <available file="${build.int.db.file}"/>
   149                 <available file="${build.int.db.file}"/>
   142                     </loadfile>
   161                     </loadfile>
   143                     <!-- Set the property in case nothing was found. -->
   162                     <!-- Set the property in case nothing was found. -->
   144                     <property name="build.int.db.file.comments" value=""/>
   163                     <property name="build.int.db.file.comments" value=""/>
   145                     <echo>History comments:
   164                     <echo>History comments:
   146 ${build.int.db.file.comments}</echo>
   165 ${build.int.db.file.comments}</echo>
       
   166                     <!-- Build number
       
   167                     @type integer
       
   168                     @scope public
       
   169                     -->
   147                     <property name="build.number" value="${build.tag.ext}${build.int}"/>
   170                     <property name="build.number" value="${build.tag.ext}${build.int}"/>
   148                     <echo>Writing incremented build int back to file.</echo>
   171                     <echo>Writing incremented build int back to file.</echo>
   149                     <propertyfile file="${build.int.db.file}" comment="build.int database file">
   172                     <propertyfile file="${build.int.db.file}" comment="build.int database file">
   150                         <entry key="build.int" type="int" default="001" operation="+" pattern="000"/>
   173                         <entry key="build.int" type="int" default="001" operation="+" pattern="000"/>
   151                     </propertyfile>
   174                     </propertyfile>
   158                     </concat>
   181                     </concat>
   159                 </then>
   182                 </then>
   160                 <else>
   183                 <else>
   161                     <echo>Build number property file not found. Creating a new one.</echo>
   184                     <echo>Build number property file not found. Creating a new one.</echo>
   162                     <property name="new.build.int" value="001"/>
   185                     <property name="new.build.int" value="001"/>
       
   186                     <!-- Build number
       
   187                     @type integer
       
   188                     @scope public
       
   189                     -->
   163                     <property name="build.number" value="${build.tag.ext}${new.build.int}"/>
   190                     <property name="build.number" value="${build.tag.ext}${new.build.int}"/>
   164                     <echo>Build number = ${build.number}</echo>
   191                     <echo>Build number = ${build.number}</echo>
   165                     <propertyfile file="${build.int.db.file}" comment="build.int database file">
   192                     <propertyfile file="${build.int.db.file}" comment="build.int database file">
   166                         <entry key="build.int" type="int" default="001" operation="+" pattern="000"/>
   193                         <entry key="build.int" type="int" default="001" operation="+" pattern="000"/>
   167                     </propertyfile>
   194                     </propertyfile>
   171     </if>
   198     </if>
   172 
   199 
   173 
   200 
   174     <!-- Define a number of properties that should be consistent amongst all builds. They can be overridden
   201     <!-- Define a number of properties that should be consistent amongst all builds. They can be overridden
   175     within any config or team Ant file though. -->
   202     within any config or team Ant file though. -->
       
   203     <!-- A general label for this type of build. Currently if not defined, product.name will be used to set this property, but this will likely be removed in future.
       
   204     @type string
       
   205     @editable required
       
   206     -->
   176     <property name="build.name" value="helium"/>
   207     <property name="build.name" value="helium"/>
   177     <if>
   208     <if>
   178         <and>
   209         <and>
   179             <isset property="core.build.version"/>
   210             <isset property="core.build.version"/>
   180             <isset property="build.number"/>
   211             <isset property="build.number"/>
   181         </and>
   212         </and>
   182         <then>
   213         <then>
       
   214             <!-- Version of the build.
       
   215             @type string
       
   216             @scope private
       
   217             -->
   183             <property name="build.version" value="${core.build.version}.${build.number}"/>
   218             <property name="build.version" value="${core.build.version}.${build.number}"/>
   184         </then>
   219         </then>
   185         <else>
   220         <else>
       
   221             <!-- Version of the build.
       
   222             @type string
       
   223             @scope private
       
   224             -->
   186             <property name="build.version" value="${env.USERNAME}"/>
   225             <property name="build.version" value="${env.USERNAME}"/>
   187         </else>
   226         </else>
   188     </if>
   227     </if>
   189     
   228     
       
   229     <!-- A unique ID for the build.
       
   230     @type string
       
   231     @scope private
       
   232     -->
   190     <property name="build.id" value="${build.name}_${build.version}"/>
   233     <property name="build.id" value="${build.name}_${build.version}"/>
       
   234     <!-- The general type of the build. This is used for checking the tools environment. Potential values include core, ido, product.
       
   235     @type string
       
   236     -->
   191     <property name="build.type" value="core"/>
   237     <property name="build.type" value="core"/>
   192     <condition property="epocroot" value="${env.EPOCROOT}" else="${env.EPOCROOT}/">
   238     <condition property="epocroot" value="${env.EPOCROOT}" else="${env.EPOCROOT}/">
   193         <matches pattern="^.*[\\/]$" string="${env.EPOCROOT}" />
   239         <matches pattern="^.*[\\/]$" string="${env.EPOCROOT}" />
   194     </condition>
   240     </condition>
       
   241     <!-- The data model XML file for the Ant configuration.
       
   242     @type string
       
   243     @scope private
       
   244     -->
   195     <property name="data.model.file" location="${helium.dir}/config/helium_data_model.xml"/>
   245     <property name="data.model.file" location="${helium.dir}/config/helium_data_model.xml"/>
       
   246     <!-- The data model XML file for the Ant configuration parsed.
       
   247     @type string
       
   248     @scope private
       
   249     -->
   196     <property name="data.model.parsed" location="${helium.build.dir}/datamodel.out"/>
   250     <property name="data.model.parsed" location="${helium.build.dir}/datamodel.out"/>
   197     <condition property="data.model.xsl" value="${helium.dir}/extensions/nokia/config/helium_nokia_data_model.xsl" else="${helium.dir}/config/helium_data_model.xsl">
   251     <condition property="data.model.xsl" value="${helium.dir}/extensions/nokia/config/helium_nokia_data_model.xsl" else="${helium.dir}/config/helium_data_model.xsl">
   198         <available file="${helium.dir}/extensions/nokia/config/helium_nokia_data_model.xsl"/>
   252         <available file="${helium.dir}/extensions/nokia/config/helium_nokia_data_model.xsl"/>
   199     </condition>
   253     </condition>
   200     <property name="database.file" location="${helium.build.dir}/database.xml"/>
   254     <!-- Location of helium database
       
   255     @type string
       
   256     @scope private
       
   257     -->
       
   258     <property name="database.file" location="${basedir}/build/database.xml"/>
       
   259     <!-- Directory where CCM operations will be performed.
       
   260     @type string
       
   261     -->
   201     <property name="ccm.base.dir" location="${ccm.home.dir}\${minor.version}"/>
   262     <property name="ccm.base.dir" location="${ccm.home.dir}\${minor.version}"/>
       
   263     <!-- This is the directory where the build area is prepared. Once created it is substed to the build.drive.
       
   264     @type string
       
   265     @scope private
       
   266     -->
   202     <property name="prep.build.dir" location="${prep.root.dir}/${build.id}"/>
   267     <property name="prep.build.dir" location="${prep.root.dir}/${build.id}"/>
       
   268     <!-- This is the directory where build output is placed.
       
   269     @type string
       
   270     @scope private
       
   271     -->
   203     <property name="build.output.dir" location="${build.drive}/output"/>
   272     <property name="build.output.dir" location="${build.drive}/output"/>
       
   273     <!-- This is where the diamonds output XML files are stored.
       
   274     @type string
       
   275     @scope private
       
   276     -->
   204     <property name="diamonds.build.output.dir" location="${build.output.dir}/diamonds"/>
   277     <property name="diamonds.build.output.dir" location="${build.output.dir}/diamonds"/>
       
   278     <!-- This is the directory where sisfiles are placed.
       
   279     @type string
       
   280     @scope private
       
   281     -->
   205     <property name="build.sisfiles.dir" location="${build.output.dir}/sisfiles"/>
   282     <property name="build.sisfiles.dir" location="${build.output.dir}/sisfiles"/>
       
   283     <!-- This is the directory where build area is archived after the build has finished.
       
   284     @type string
       
   285     @scope private
       
   286     -->
   206     <property name="zips.build.dir" location="${build.output.dir}/build_area/engineering_english"/>
   287     <property name="zips.build.dir" location="${build.output.dir}/build_area/engineering_english"/>
       
   288     <!-- This is the directory where build area is archived after the localisation.
       
   289     @type string
       
   290     @scope private
       
   291     -->
   207     <property name="zips.loc.dir" location="${build.output.dir}/build_area/localised"/>
   292     <property name="zips.loc.dir" location="${build.output.dir}/build_area/localised"/>
       
   293     <!-- The directory where subcon zips are stored.
       
   294     @type string
       
   295     @scope private
       
   296     -->
   208     <property name="subcon.zips.dir" location="${build.output.dir}/build_area/subcon"/>
   297     <property name="subcon.zips.dir" location="${build.output.dir}/build_area/subcon"/>
       
   298     <!-- This is the directory where flash files are archived.
       
   299     @type string
       
   300     @scope private
       
   301     -->
   209     <property name="zips.flashfiles.dir" location="${build.output.dir}/zips_flashfiles"/>
   302     <property name="zips.flashfiles.dir" location="${build.output.dir}/zips_flashfiles"/>
       
   303     <!-- This is where the build logs are stored.
       
   304     @type string
       
   305     @scope private
       
   306     -->
   210     <property name="build.log.dir" location="${build.output.dir}/logs"/>
   307     <property name="build.log.dir" location="${build.output.dir}/logs"/>
   211     <property name="prep.log.dir" location="${build.log.dir}/prep"/>
   308     <!-- This is where the signal related files are stored.
   212     <property name="compile.log.dir" location="${build.log.dir}/compile"/>
   309     @type string
   213     <property name="test.log.dir" location="${build.log.dir}/test"/>
   310     @scope private
   214     <property name="archive.log.dir" location="${build.log.dir}/archive"/>
   311     -->
   215     <property name="roms.log.dir" location="${build.log.dir}/roms"/>       
       
   216     <property name="post.log.dir" location="${build.log.dir}/post"/>
       
   217     <property name="localisation.log.dir" location="${build.log.dir}/localisation"/>    
       
   218     <property name="build.signal.status.dir" location="${build.log.dir}/signals"/>
   312     <property name="build.signal.status.dir" location="${build.log.dir}/signals"/>
   219     <property name="build.status.email.template" location="${helium.dir}/tools/common/templates/log/email_status.html.ftl" />
   313     <!-- This is the email template path where it updates the build status based on metadata database contents. The default file could (email_status_orm.html.ftl under tools\common\template\log)be used as the base and any additional info could be added
   220     <property name="metadata.dbfile" location="${build.log.dir}/${build.id}_metadata.sqlite"/>
   314     @type string
       
   315     -->
       
   316     <property name="build.status.email.template" location="${helium.dir}/tools/common/templates/log/email_status_orm.html.ftl" />
       
   317     <!-- Location of build metadata database.
       
   318     @type string
       
   319     @scope private
       
   320     -->
       
   321     <condition property="metadata.dbfile" value="${build.log.dir}/${build.id}_metadata_db" else="${build.log.dir}/${build.id}${env.PID}_metadata_db">
       
   322         <isset property="build.number"/>
       
   323     </condition>
       
   324     
       
   325     <!-- Directory to store temporary files generated during the process.
       
   326     @type string
       
   327     @scope private
       
   328     -->
   221     <property name="temp.build.dir" location="${build.output.dir}/temp_build_files"/>
   329     <property name="temp.build.dir" location="${build.output.dir}/temp_build_files"/>
       
   330     <!-- failonerror attribute for exec
       
   331     @type boolean
       
   332     @scope private
       
   333     -->
   222     <property name="failonerror" value="false"/>
   334     <property name="failonerror" value="false"/>
       
   335     <!-- Maximum allowable errors in a build.
       
   336     @type number
       
   337     -->
   223     <property name="build.errors.limit" value="0"/>
   338     <property name="build.errors.limit" value="0"/>
       
   339     <!-- Unsubsted drive after build finished. If not defined then helium should left the drive as subst. Set the value as "yes" if you want to unsubst after build finished.
       
   340     @type string
       
   341     -->
   224     <property name="unsubst.after.build" value="no"/>
   342     <property name="unsubst.after.build" value="no"/>
       
   343     <!-- display warnings at build startup if required properties are not defined.
       
   344     @type string
       
   345     @scope private
       
   346     -->
   225     <property name="validate.properties.at.startup" value="yes"/>
   347     <property name="validate.properties.at.startup" value="yes"/>
       
   348     <!-- A unique name for the WA Sources ZIP file.
       
   349     @type string
       
   350     @scope private
       
   351     -->
   226     <property name="zip.wa.file" value="${build.drive}/output/src/${build.id}_sources.zip"/>
   352     <property name="zip.wa.file" value="${build.drive}/output/src/${build.id}_sources.zip"/>
       
   353     <!-- The location and name of the target times log file. Default value is: ${build.log.dir}/${build.id}_targetTimesLog.csv
       
   354     @type string
       
   355     -->
       
   356     <property name="target.times.log.file" value="${build.log.dir}/${build.id}_targetTimesLog.csv"/>
   227 
   357 
   228     <!-- Cache related properties. -->
   358     <!-- Cache related properties. -->
       
   359     <!-- Directory where Helium can store files on a temporary basis for a user per build.
       
   360     @type string
       
   361     @scope private
       
   362     -->
   229     <property name="build.cache.dir" location="${cache.dir}/${build.id}"/>
   363     <property name="build.cache.dir" location="${cache.dir}/${build.id}"/>
       
   364     <!-- Directory where Helium can store log files on a temporary basis for a user per build.
       
   365     @type string
       
   366     @scope private
       
   367     -->
   230     <property name="build.cache.log.dir" location="${build.cache.dir}/logs"/>
   368     <property name="build.cache.log.dir" location="${build.cache.dir}/logs"/>
   231     <mkdir dir="${build.cache.log.dir}"/>
   369     <mkdir dir="${build.cache.log.dir}"/>
   232     
   370     
       
   371     <!-- Path location for the memory tracing data captured by the TracingLogger.
       
   372     @type string
       
   373     @scope private
       
   374     -->
   233     <property name="tracing.csv.file" location="${build.cache.dir}/logs/${build.id}_traces.csv"/>
   375     <property name="tracing.csv.file" location="${build.cache.dir}/logs/${build.id}_traces.csv"/>
   234     
   376     
   235     <!-- Publish dir configuration. Defines subdir first and next toplevel properties. -->
   377     <!-- Publish dir configuration. Defines subdir first and next toplevel properties. -->
       
   378     <!-- Subdir part of the publish dir, relative to publish.root.dir
       
   379     @type string
       
   380     -->
   236     <property name="publish.subdir" value="${build.name}/builds/${core.build.version}/${build.id}"/>
   381     <property name="publish.subdir" value="${build.name}/builds/${core.build.version}/${build.id}"/>
       
   382     <!-- Subdir part of the publish release dir, relative to publish.root.dir
       
   383     @type string
       
   384     @scope private
       
   385     -->
   237     <property name="publish.release.subdir" value="${build.name}/releases/${core.build.version}/${build.id}"/>
   386     <property name="publish.release.subdir" value="${build.name}/releases/${core.build.version}/${build.id}"/>
       
   387     <!-- Directory where the build is published (includes build.id)
       
   388     @type string
       
   389     -->
   238     <property name="publish.dir" location="${publish.root.dir}/${publish.subdir}"/>
   390     <property name="publish.dir" location="${publish.root.dir}/${publish.subdir}"/>
       
   391     <!-- The directory where the release of this build is published to on the local network.
       
   392     @type string
       
   393     @scope private
       
   394     -->
   239     <property name="publish.release.dir" location="${publish.root.dir}/${publish.release.subdir}"/>
   395     <property name="publish.release.dir" location="${publish.root.dir}/${publish.release.subdir}"/>
   240     <condition property="is.published" else="false">
   396     <condition property="is.published" else="false">
   241         <isset property="publish"/>
   397         <isset property="publish"/>
   242     </condition>
   398     </condition>
   243     
   399     
       
   400     <!-- The directory where flash images of build can be found
       
   401     @type string
       
   402     @scope private
       
   403     -->
   244     <property name="release.images.dir" value="${build.output.dir}/release_flash_images"/>
   404     <property name="release.images.dir" value="${build.output.dir}/release_flash_images"/>
       
   405     <!-- Defines location of binaries created in build. Used in check-capability target while generating capability scan report.
       
   406     @type string
       
   407     @scope private
       
   408     -->
   245     <property name="binary.root" value="${build.drive}/epoc32/release/armv5/urel" />
   409     <property name="binary.root" value="${build.drive}/epoc32/release/armv5/urel" />
       
   410     <!-- Location of python library
       
   411     @type string
       
   412     @scope private
       
   413     -->
   246     <property name="python.dir" value="${helium.dir}/external/python/lib"/>
   414     <property name="python.dir" value="${helium.dir}/external/python/lib"/>
       
   415     <!-- @type string
       
   416     @scope private
       
   417     -->
   247     <property name="python.tools" value="${helium.dir}/external/python/bin"/>
   418     <property name="python.tools" value="${helium.dir}/external/python/bin"/>
   248 
   419 
   249     <!-- EBS is selected as the default build system, but ec for Electric Cloud could be used. -->
   420     <!-- EBS is selected as the default build system, but ec for Electric Cloud could be used. -->
       
   421     <!-- This specifies which build system is used. Default for this is ebs You can use ec for Electric Cloud..
       
   422     @type string
       
   423     -->
   250     <property name="build.system" value="ebs"/>
   424     <property name="build.system" value="ebs"/>
       
   425     <!-- Path for the output XML file generated by genxml used as input to EBS or EC.
       
   426     @type string
       
   427     @scope private
       
   428     -->
   251     <property name="genxml.output.file" location="${temp.build.dir}/${build.id}.${sysdef.configuration}.xml" />
   429     <property name="genxml.output.file" location="${temp.build.dir}/${build.id}.${sysdef.configuration}.xml" />
       
   430     <!-- The path of the generated canonical System Definition file that contains all the input System Definition file content.
       
   431     @type string
       
   432     @scope private
       
   433     -->
   252     <property name="canonical.sysdef.file" value="${build.output.dir}/build/canonical_system_definition.xml"/>
   434     <property name="canonical.sysdef.file" value="${build.output.dir}/build/canonical_system_definition.xml"/>
       
   435     <!-- @type string
       
   436     @scope private
       
   437     -->
   253     <property name="build.system.${build.system}" value="Not used"/>
   438     <property name="build.system.${build.system}" value="Not used"/>
       
   439     <!-- This is the file where build summary is stored.
       
   440     @type string
       
   441     @scope private
       
   442     -->
   254     <property name="build.summary.file" location="${build.log.dir}/summary/${build.id}_summary.log.xml"/>
   443     <property name="build.summary.file" location="${build.log.dir}/summary/${build.id}_summary.log.xml"/>
   255     <property name="error.summary.file" location="${build.log.dir}/summary/${build.id}_error_summary.log.xml"/>
   444     <property name="error.summary.file" location="${build.log.dir}/summary/${build.id}_error_summary.log.xml"/>
   256     <property name="build.logging.start.stage" value="check-env-prep"/>
   445     <!-- Defines name of the log file.
   257     <property name="build.logging.key.stages" value="prep,build-ebs-main,postbuild,flashfiles,java-certification-rom,zip-main,publish-generic,variants-core,variants-elaf,variants-china,variants-thai,variants-japan,variants,mobilecrash-prep,localise-tutorial-content,hdd-images,zip-flashfiles,zip-localisation,data-packaging-prep"/>
   446     @type string
       
   447     @scope private
       
   448     -->
   258     <property name="build.log" value="${build.log.dir}/${build.id}_main.ant.log"/>
   449     <property name="build.log" value="${build.log.dir}/${build.id}_main.ant.log"/>
   259     <property name="overlays.log.file" location="${build.log.dir}/${build.id}_overlays.xml"/>
   450     <!-- Diamonds Configuration file with full path used for diamonds listener.
       
   451     @type string
       
   452     -->
   260     <property name="diamonds.listener.configuration.file" location="${helium.dir}/config/diamonds_config.xml.ftl"/>
   453     <property name="diamonds.listener.configuration.file" location="${helium.dir}/config/diamonds_config.xml.ftl"/>
       
   454     <!-- Path where ant XML files dynamically downloaded from jar file.
       
   455     @type string
       
   456     @scope private
       
   457     -->
   261     <property name="antlib.import.module.path" location="${helium.dir}/tools/hlm-antlib-imports"/>
   458     <property name="antlib.import.module.path" location="${helium.dir}/tools/hlm-antlib-imports"/>
   262     
   459     
   263     <!-- Following are temporarily defined here until global tools available-->
   460     <!-- Following are temporarily defined here until global tools available-->
   264     <property name="ec.scripts.dir" location="${helium.dir}/external/symbiantools/ectools/"/>
   461     <!-- This specifies the directory where Electric Cloud history files are stored. Currently defined in helium.ant.xml and mapped related to publish.root.dir
       
   462     @type string
       
   463     @scope private
       
   464     -->
   265     <property name="ec.history.dir" location="${publish.root.dir}\${product.family}\ec_history"/>
   465     <property name="ec.history.dir" location="${publish.root.dir}\${product.family}\ec_history"/>
   266     <property name="ec.tools.dir" location="${helium.dir}/external/symbiantools/ectools/tools/"/>
   466     <!-- Version of build
       
   467     @type string
       
   468     -->
   267     <property name="release.label" value="${build.version}"/>
   469     <property name="release.label" value="${build.version}"/>
       
   470     <!-- mode is either serial / parallel - default is parallel
       
   471     @type string
       
   472     -->
   268     <property name="ec.mode" value="parallel" />
   473     <property name="ec.mode" value="parallel" />
       
   474     <!-- Setting this to "1" will force xml2mak to generate only warnings (instead of errors) for duplicate components in the component list
       
   475     @type string
       
   476     @scope private
       
   477     -->
   269     <property name="ec.allow.duplicates" value="0" />
   478     <property name="ec.allow.duplicates" value="0" />
   270     <property name="roms.spec.name" value=""/>
   479     <!-- Defines log file where to record archiving of engineering english area.
       
   480     @type string
       
   481     @scope private
       
   482     -->
   271     <property name="zip.ee.log.file" location="${build.log.dir}/${build.id}_ee_zip.log" />
   483     <property name="zip.ee.log.file" location="${build.log.dir}/${build.id}_ee_zip.log" />
       
   484     <!-- The path to the localization zipping log file.
       
   485     @type string
       
   486     @scope private
       
   487     -->
   272     <property name="zip.localised.log.file" location="${build.log.dir}/${build.id}_localised_zip.log" />
   488     <property name="zip.localised.log.file" location="${build.log.dir}/${build.id}_localised_zip.log" />
       
   489     <!-- Defines log file where to record archiving of subcon environment.
       
   490     @type string
       
   491     @scope private
       
   492     -->
   273     <property name="zip.subcon.log.file" value="${build.log.dir}/${build.id}_subcon_zip.log" />
   493     <property name="zip.subcon.log.file" value="${build.log.dir}/${build.id}_subcon_zip.log" />
       
   494     <!-- The log file name for zipping subcon_roms.
       
   495     @type string
       
   496     @scope private
       
   497     -->
   274     <property name="zip.subcon_roms.log.file" location="${build.log.dir}/${build.id}_subcon_roms_zip.log" />
   498     <property name="zip.subcon_roms.log.file" location="${build.log.dir}/${build.id}_subcon_roms_zip.log" />
       
   499     <!-- The log file name for zipping trace_roms.
       
   500     @type string
       
   501     @scope private
       
   502     -->
   275     <property name="zip.trace_roms.log.file" location="${build.log.dir}/${build.id}_trace_roms_zip.log" />
   503     <property name="zip.trace_roms.log.file" location="${build.log.dir}/${build.id}_trace_roms_zip.log" />
   276     <property name="zip.uda_roms.log.file" location="${build.log.dir}/${build.id}_uda_roms_zip.log" />
   504     <!-- target to be executed in case of exceptions (mainly to generate the summary and raise signal).
   277     <property name="rombuild.makefile.name" value="image_conf_helium.mk" />
   505     @type string
   278     <property name="loc.temp.dir" location="${temp.build.dir}/locfiles"/>
   506     @scope private
   279     <property name="loc.output.dir" location="${build.output.dir}/build_area/localised"/>
   507     -->
   280     <property name="loc.output.filename" location="${build.id}_locfiles.zip"/>
       
   281     <property name="exceptions.target" value="hlm-exception-handler"/>
   508     <property name="exceptions.target" value="hlm-exception-handler"/>
       
   509     <!-- The tools dependencies Ivy settings configuration file.
       
   510     @type string
       
   511     -->
   282     <property name="tools.ivy.config.file" location="${helium.dir}/config/ivy/tools_ivy_settings.xml" />
   512     <property name="tools.ivy.config.file" location="${helium.dir}/config/ivy/tools_ivy_settings.xml" />
   283     
   513     
       
   514     <!-- A file where persistent properties for a build should be stored.
       
   515     @type string
       
   516     @scope private
       
   517     -->
   284     <property name="build.property.cache.file" location="${diamonds.build.output.dir}/build_properties_cache.txt" />
   518     <property name="build.property.cache.file" location="${diamonds.build.output.dir}/build_properties_cache.txt" />
       
   519     <!-- The path for the Python script to handle the ccm task bridge to the ccm.py module.
       
   520     @type string
       
   521     @scope private
       
   522     -->
   285     <property name="ccmtask.python.script.file" location="${helium.dir}/tools/preparation/synergy/ccmtask.jep" />
   523     <property name="ccmtask.python.script.file" location="${helium.dir}/tools/preparation/synergy/ccmtask.jep" />
       
   524     <!-- Level of ant logging.
       
   525     @type string
       
   526     -->
   286     <property name="ant.loglevel" value="verbose"/>
   527     <property name="ant.loglevel" value="verbose"/>
   287 
   528 
   288     <if>
   529     <if>
   289         <available file="${build.property.cache.file}"/>
   530         <available file="${build.property.cache.file}"/>
   290         <then>
   531         <then>
   291             <property file="${build.property.cache.file}"/>
   532             <property file="${build.property.cache.file}"/>
   292         </then>
   533         </then>
   293     </if>
   534     </if>
   294 
       
   295 
       
   296 
   535 
   297 
   536 
   298     <!-- Default number of threads is 2 * NUMBER_OF_PROCESSORS, but this can be overridden by defining the
   537     <!-- Default number of threads is 2 * NUMBER_OF_PROCESSORS, but this can be overridden by defining the
   299     property manually. -->
   538     property manually. -->
   300     <if>
   539     <if>
   306                 <isset property="env.NUMBER_OF_PROCESSORS"/>
   545                 <isset property="env.NUMBER_OF_PROCESSORS"/>
   307                 <then>
   546                 <then>
   308                     <math result="number.of.threads" operand1="${env.NUMBER_OF_PROCESSORS}" operation="*" operand2="2" datatype="int"/>
   547                     <math result="number.of.threads" operand1="${env.NUMBER_OF_PROCESSORS}" operation="*" operand2="2" datatype="int"/>
   309                 </then>
   548                 </then>
   310                 <else>
   549                 <else>
       
   550                     <!-- how many parallel threads can run
       
   551                     @type string
       
   552                     @scope public
       
   553                     -->
   311                     <property name="number.of.threads" value="2"/>
   554                     <property name="number.of.threads" value="2"/>
   312                 </else>
   555                 </else>
   313             </if>
   556             </if>
   314         </then>
   557         </then>
   315     </if>
   558     </if>
       
   559     
       
   560     <!--* @property product.family
       
   561     In product builds defines the product family that the build product belong to.
       
   562     @type string
       
   563     @editable required
       
   564     @scope public
       
   565     -->
       
   566     
       
   567     <!--* @property product.list
       
   568     In product builds defines the list of products that are build in the configuration. Property is used in rom image creation, localisation release notes creation and data packaging.
       
   569     @type string
       
   570     @editable required
       
   571     @scope public
       
   572     -->
   316      
   573      
   317 
   574 
   318     <!-- Import basic targets.
   575     <!-- Import basic targets.
   319         
   576         
   320     The intention would be to split the targets into separate files somewhat
   577     The intention would be to split the targets into separate files somewhat
   324     <import file="tools/preparation/preparation.ant.xml"/>
   581     <import file="tools/preparation/preparation.ant.xml"/>
   325     <import file="tools/common/common.ant.xml"/>
   582     <import file="tools/common/common.ant.xml"/>
   326     <import file="tools/common/testing.ant.xml"/>
   583     <import file="tools/common/testing.ant.xml"/>
   327     <import file="tools/compile/compile.ant.xml"/>
   584     <import file="tools/compile/compile.ant.xml"/>
   328     <import file="tools/common/docs.ant.xml"/>
   585     <import file="tools/common/docs.ant.xml"/>
       
   586     <import file="tools/common/helium_docs.ant.xml"/>
   329     <import file="tools/localisation/localisation.ant.xml"/>
   587     <import file="tools/localisation/localisation.ant.xml"/>
       
   588     <import file="tools/logging/logging.ant.xml"/>
   330     <import file="tools/publish/publish.ant.xml"/>
   589     <import file="tools/publish/publish.ant.xml"/>
   331     <import file="tools/metadata/metadata.ant.xml"/>
   590     <import file="tools/metadata/metadata.ant.xml"/>
   332     <import file="tools/release/release.ant.xml"/>
   591     <import file="tools/release/release.ant.xml"/>
   333     <import file="tools/rombuild/rombuild.ant.xml"/>
   592     <import file="tools/rombuild/rombuild.ant.xml"/>
   334     <import file="tools/uda/uda.ant.xml"/>
       
   335     <import file="tools/quality/quality.ant.xml"/>
   593     <import file="tools/quality/quality.ant.xml"/>
   336     <import file="tools/relnotes/relnotes.ant.xml"/>
   594     <import file="tools/relnotes/relnotes.ant.xml"/>
   337     <import file="tools/integration/integration.ant.xml"/>
   595     <import file="tools/integration/integration.ant.xml"/>
   338     <import file="tools/startup/antserver/remote.ant.xml" />
   596     <import file="tools/startup/antserver/remote.ant.xml" />
   339     <import file="tools/testing/testing.ant.xml" />
   597     <import file="tools/testing/testing.ant.xml" />
   341     <import file="tools/iad/iad.ant.xml"/>
   599     <import file="tools/iad/iad.ant.xml"/>
   342     <import file="config/signaling_config_default.ant.xml"/>
   600     <import file="config/signaling_config_default.ant.xml"/>
   343     <import file="config/stages_config_default.ant.xml"/>
   601     <import file="config/stages_config_default.ant.xml"/>
   344     <import file="config/metadata_filter_config_default.ant.xml"/>
   602     <import file="config/metadata_filter_config_default.ant.xml"/>
   345 
   603 
   346     <!-- Checking required properties from datamodel if "validate.properties.at.startup=yes" 
       
   347         
       
   348     Comment this out until it is done more correctly.-->
       
   349     <!--<if>
       
   350         <and>
       
   351             <isset property="validate.properties.at.startup"/>
       
   352             <equals arg1="${validate.properties.at.startup}" arg2="yes"/>
       
   353         </and>
       
   354         <then>
       
   355             <runtarget target="validate-at-startup"/>
       
   356         </then>
       
   357     </if>-->
       
   358     
   604     
   359     <!-- Top level build execution targets.
   605     <!-- Top level build execution targets.
   360         
   606         
   361     All of these should simply depend on other targets. They should not contain any tasks.
   607     All of these should simply depend on other targets. They should not contain any tasks.
   362     -->
   608     -->
   363     
   609     
   364     <!-- Top-level target for platform builds. -->
   610     <!-- Top-level target for platform builds. -->
   365     <target name="platform-build"
   611     <target name="platform-build"
   366             depends="prep,prebuild,compile-main,postbuild,ee-roms,zip-ee,publish-generic,
   612             depends="prep,prebuild,compile-main,postbuild,build-roms,zip-ee,publish-generic,
   367                      report,final"
   613                      report,final"
   368             description="The default platform build"/>
   614             description="The default platform build"/>
   369     
   615     
   370     <!-- Top-level target for IBUSAL builds. -->
   616     <!-- Top-level target for IBUSAL builds. -->
   371     <target name="ibusal-build"
   617     <target name="ibusal-build"
   374                      create-canonical-sysdef-file,compile-main,zip-ee"
   620                      create-canonical-sysdef-file,compile-main,zip-ee"
   375             description="The default IBUSAL build"/>
   621             description="The default IBUSAL build"/>
   376 
   622 
   377     <!-- Top-level target for IDO builds. -->
   623     <!-- Top-level target for IDO builds. -->
   378     <target name="ido-build"
   624     <target name="ido-build"
   379             depends="diamonds,compile-clean,compile-main,ee-roms"
   625             depends="diamonds,compile-clean,compile-main,build-roms"
   380             description="IDO build"/>
   626             description="IDO build"/>
   381 </project>
   627 </project>