buildframework/helium/tools/common/default_config.ant.xml
changeset 640 ac0bbc1e5d79
parent 628 7c4a911dc066
child 645 b8d81fa19e7d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildframework/helium/tools/common/default_config.ant.xml	Mon Sep 13 13:11:19 2010 +0800
@@ -0,0 +1,594 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+============================================================================ 
+Name        : default_config.ant.xml 
+Part of     : Helium 
+
+Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+All rights reserved.
+This component and the accompanying materials are made available
+under the terms of the License "Eclipse Public License v1.0"
+which accompanies this distribution, and is available
+at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+Initial Contributors:
+Nokia Corporation - initial contribution.
+
+Contributors:
+
+Description:
+
+============================================================================
+-->
+<project name="default_config" xmlns:hlm="http://www.nokia.com/helium">
+    <description>
+    Default Helium configuration.
+    </description>
+    
+    <!-- The path where Helium-specific outputs are written to.
+    @type string
+    @scope private
+    -->
+    <property name="helium.build.dir" location="${helium.dir}/build"/>
+   
+    <!-- Location of generated logging config.
+    @type string
+    @scope private
+    -->
+    <property name="logging.output.file" location="${cache.dir}/logging.${env.PID}.conf" />
+    <fmpp sourceFile="${helium.dir}/config/logging.conf.ftl" outputFile="${logging.output.file}" quiet="true">
+        <data expandProperties="yes">
+            ant: antProperties()
+        </data>
+    </fmpp>
+     
+    <!-- Properties
+    ======================================================================-->
+    <!-- Used to specify which team configuration is being used. These configuration files are under /mc/mc_build/teams.
+    @type string
+    -->
+    <property name="team" value="${env.TEAM}"/>
+
+    <!-- See if 'bn' is defined as a shortcut for build.number. -->
+    <if>
+        <isset property="bn"/>
+        <then>
+            <!-- Build number
+            @type integer
+            @scope public
+            -->
+            <property name="build.number" value="${bn}"/>
+        </then>
+    </if>
+    
+    <!-- If build.drive not define then search the next free drive -->
+    <if>
+        <and>
+            <not>
+                <isset property="build.drive"/>
+            </not>    
+            <os family="windows"/>
+        </and>
+        <then>
+            <!-- used to track if build.drive has predefined or not
+            @type flag
+            @scope private
+            -->
+            <property name="build.drive.notdefined" value="true"/> 
+            <exec osfamily="windows" executable="python" failonerror="true" outputproperty="build.drive">
+                <arg line="-m searchnextdrive"/>               
+            </exec>
+            <if>
+                <equals arg1="${build.drive}" arg2="Error: No free drive!"/>
+                <then>            
+                    <fail message="ERROR: Failed to assign build drive, please check you are not running out of drives." />    
+                </then>
+            </if>
+            <mkdir dir="${env.TEMP}/helium/temp_drive"/>
+            <exec osfamily="windows" executable="subst" failonerror="false">
+                <arg value="${build.drive}" />
+                <arg value="${env.TEMP}/helium/temp_drive" />
+            </exec>
+            <script language="jython" setbeans="false">
+                <![CDATA[
+import os
+import java.lang.Runtime
+import java.lang.Thread
+class UnsubstListener(java.lang.Thread):
+    def run(self):
+        java.lang.Runtime.getRuntime().exec("subst /d " + project.getProperty("build.drive"))
+if os.sep == '\\':
+    java.lang.Runtime.getRuntime().addShutdownHook(UnsubstListener())
+              ]]>
+            </script>
+            <echo> Using build drive ${build.drive} </echo>
+        </then>
+    </if>
+    
+    <!-- For unix os prep.build.dir is equivalent to build.drive -->
+    <condition property="prep.build.dir" value="${build.drive}">
+        <and>
+            <isset property="build.drive"/>
+            <os family="unix"/>
+        </and>
+    </condition>
+    
+    <!--* @property core.build.version
+    This Defaults to the ${major.version}.${minor.version} combo and is available so that 1 number can be used (dot can be removed)
+    @type string
+    @scope private
+    -->
+    
+    <!-- Set core build version depending the value set for ${major.version}.${minor.version} -->
+    <condition property="core.build.version" value="${major.version}.${minor.version}" else="${env.USERNAME}">
+        <and>
+            <isset property="major.version"/>
+            <isset property="minor.version"/>
+        </and>
+    </condition>
+    
+    <!--* @property read.build.int
+    If defined, indicates that the build number should be read from an incrementing text file.
+    @type string
+    @scope public
+    -->
+    <!--* @property build.tag
+    If defined, defines the prefix for the build number when it is read from an incrementing text file.
+    @type string
+    @scope public
+    -->
+    <if>
+        <and>
+            <isset property="read.build.int"/>
+            <not>
+                <isset property="build.number"/>
+            </not>
+        </and>
+        <then>
+            <if>
+                <isset property="build.tag"/>
+                <then>
+                    <property name="build.tag.ext" value="${build.tag}."/>
+                </then>
+                <else>
+                    <property name="build.tag.ext" value=""/>
+                    <property name="build.tag" value=""/>
+                </else>
+            </if>
+            <!-- Use an internal directory to store text files for assigning build number information. -->
+            <!-- The directory where the build integer database text files are stored.
+            @type string
+            @scope private
+            -->
+            <property name="build.int.db.dir" location="${publish.root.dir}/internal/build_int_db"/>
+            <mkdir dir="${build.int.db.dir}"/>
+            <property name="build.int.db.file" value="${build.int.db.dir}/${build.name}_${core.build.version}_${build.tag}_build_int_db.txt"/>
+            <if>
+                <available file="${build.int.db.file}"/>
+                <then>
+                    <echo>Reading from existing build number property file.</echo>
+                    <property file="${build.int.db.file}"/>
+                    <echo>Build int = ${build.int}</echo>
+                    <!-- Read the comments in the file too, for history information. -->
+                    <loadfile property="build.int.db.file.comments" srcFile="${build.int.db.file}">
+                        <filterchain>
+                            <linecontains>
+                                <contains value="# history: "/>
+                            </linecontains>
+                        </filterchain>
+                    </loadfile>
+                    <!-- Set the property in case nothing was found. -->
+                    <property name="build.int.db.file.comments" value=""/>
+                    <echo>History comments:
+${build.int.db.file.comments}</echo>
+                    <!-- Build number
+                    @type integer
+                    @scope public
+                    -->
+                    <property name="build.number" value="${build.tag.ext}${build.int}"/>
+                    <echo>Writing incremented build int back to file.</echo>
+                    <propertyfile file="${build.int.db.file}" comment="build.int database file">
+                        <entry key="build.int" type="int" default="001" operation="+" pattern="000"/>
+                    </propertyfile>
+                    <tstamp>
+                        <format property="build.int.db.file.tstamp" pattern="dd/MM/yyyy-HH:mm:ss"/>
+                    </tstamp>
+                    <concat destfile="${build.int.db.file}" append="true">
+${build.int.db.file.comments}
+# history: ${env.COMPUTERNAME};${env.USERNAME};${build.int.db.file.tstamp};${build.int}
+                    </concat>
+                </then>
+                <else>
+                    <echo>Build number property file not found. Creating a new one.</echo>
+                    <property name="new.build.int" value="001"/>
+                    <!-- Build number
+                    @type integer
+                    @scope public
+                    -->
+                    <property name="build.number" value="${build.tag.ext}${new.build.int}"/>
+                    <echo>Build number = ${build.number}</echo>
+                    <propertyfile file="${build.int.db.file}" comment="build.int database file">
+                        <entry key="build.int" type="int" default="001" operation="+" pattern="000"/>
+                    </propertyfile>
+                </else>
+            </if>
+        </then>
+    </if>
+
+
+    <!-- Define a number of properties that should be consistent amongst all builds. They can be overridden
+    within any config or team Ant file though. -->
+    <!-- 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.
+    @type string
+    @editable required
+    -->
+    <property name="build.name" value="helium"/>
+    
+    <!--* @property build.version
+    Version of the build.
+    @type string
+    @scope private
+    -->
+    <!-- Set build version depending the value set to core.build.version and build.number -->
+    <condition property="build.version" value="${core.build.version}.${build.number}" else="${env.USERNAME}">
+        <and>
+            <isset property="core.build.version"/>
+            <isset property="build.number"/>
+        </and>
+    </condition>
+    
+    
+    <!-- A unique ID for the build.
+    @type string
+    @scope private
+    -->
+    <property name="build.id" value="${build.name}_${build.version}"/>
+    <!-- The general type of the build. This is used for checking the tools environment. Potential values include core, ido, product.
+    @type string
+    -->
+    <property name="build.type" value="core"/>
+    <condition property="epocroot" value="${env.EPOCROOT}" else="${env.EPOCROOT}/">
+        <matches pattern="^.*[\\/]$" string="${env.EPOCROOT}" />
+    </condition>
+    <!-- The data model XML file for the Ant configuration.
+    @type string
+    @scope private
+    -->
+    <property name="data.model.file" location="${helium.dir}/config/helium_data_model.xml"/>
+    <!-- The data model XML file for the Ant configuration parsed.
+    @type string
+    @scope private
+    -->
+    <property name="data.model.parsed" location="${helium.build.dir}/datamodel.out"/>
+    <condition property="data.model.xsl" value="${helium.dir}/extensions/nokia/config/helium_nokia_data_model.xsl" else="${helium.dir}/config/helium_data_model.xsl">
+        <available file="${helium.dir}/extensions/nokia/config/helium_nokia_data_model.xsl"/>
+    </condition>
+    <!-- Location of helium database
+    @type string
+    @scope private
+    -->
+    <property name="database.file" location="${basedir}/build/database.xml"/>
+    <!-- Directory where CCM operations will be performed.
+    @type string
+    -->
+    <property name="ccm.base.dir" location="${ccm.home.dir}\${minor.version}"/>
+    <!-- This is the directory where the build area is prepared. Once created it is substed to the build.drive.
+    @type string
+    @scope private
+    -->
+    <property name="prep.build.dir" location="${prep.root.dir}/${build.id}"/>
+    <!-- This is the directory where build output is placed.
+    @type string
+    @scope private
+    -->
+    
+    <!-- If build.drive not define then prep.buil.dir is the value for build.drive for unix os -->
+    <condition property="build.drive" value="${prep.build.dir}">
+        <and>
+            <not>
+                <isset property="build.drive"/>
+            </not>    
+            <os family="unix"/>
+        </and>
+    </condition>
+    
+    <property name="build.output.dir" location="${build.drive}/output"/>
+    <!-- This is where the diamonds output XML files are stored.
+    @type string
+    @scope private
+    -->
+    <property name="diamonds.build.output.dir" location="${build.output.dir}/diamonds"/>
+    <!-- This is the directory where sisfiles are placed.
+    @type string
+    @scope private
+    -->
+    <property name="build.sisfiles.dir" location="${build.output.dir}/sisfiles"/>
+    <!-- This is the directory where build area is archived after the build has finished.
+    @type string
+    @scope private
+    -->
+    <property name="zips.build.dir" location="${build.output.dir}/build_area/engineering_english"/>
+    <!-- This is the directory where build area is archived after the localisation.
+    @type string
+    @scope private
+    -->
+    <property name="zips.loc.dir" location="${build.output.dir}/build_area/localised"/>
+    <!-- The directory where subcon zips are stored.
+    @type string
+    @scope private
+    -->
+    <property name="subcon.zips.dir" location="${build.output.dir}/build_area/subcon"/>
+    <!-- This is the directory where flash files are archived.
+    @type string
+    @scope private
+    -->
+    <property name="zips.flashfiles.dir" location="${build.output.dir}/zips_flashfiles"/>
+    <!-- This is where the build logs are stored.
+    @type string
+    @scope private
+    -->
+    <property name="build.log.dir" location="${build.output.dir}/logs"/>
+    <!-- This is where the signal related files are stored.
+    @type string
+    @scope private
+    -->
+    <property name="build.signal.status.dir" location="${build.log.dir}/signals"/>
+    <!-- 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
+    @type string
+    -->
+    <property name="build.status.email.template" location="${helium.dir}/tools/common/templates/log/email_status_orm.html.ftl" />
+    <!-- Location of build metadata database.
+    @type string
+    @scope private
+    -->
+    <condition property="metadata.dbfile" value="${build.log.dir}/${build.id}_metadata_db" else="${build.log.dir}/${build.id}${env.PID}_metadata_db">
+        <isset property="build.number"/>
+    </condition>
+    
+    <!-- Directory to store temporary files generated during the process.
+    @type string
+    @scope private
+    -->
+    <property name="temp.build.dir" location="${build.output.dir}/temp_build_files"/>
+    <!-- The 'failonerror' attribute for exec tasks.
+    @type boolean
+    @scope public
+    -->
+    <property name="failonerror" value="false"/>
+    <!-- Maximum allowable errors in a build.
+    @type number
+    -->
+    <property name="build.errors.limit" value="0"/>
+    <!-- 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.
+    @type string
+    -->
+    <property name="unsubst.after.build" value="no"/>
+    <!-- display warnings at build startup if required properties are not defined.
+    @type string
+    @scope private
+    -->
+    <property name="validate.properties.at.startup" value="yes"/>
+    <!-- A unique name for the WA Sources ZIP file.
+    @type string
+    @scope private
+    -->
+    <property name="zip.wa.file" value="${build.drive}/output/src/${build.id}_sources.zip"/>
+    <!-- The location and name of the target times log file. Default value is: ${build.log.dir}/${build.id}_targetTimesLog.csv
+    @type string
+    -->
+    <property name="target.times.log.file" value="${build.log.dir}/${build.id}_targetTimesLog.csv"/>
+
+    <!-- Cache related properties. -->
+    <!-- Directory where Helium can store files on a temporary basis for a user per build.
+    @type string
+    @scope private
+    -->
+    <property name="build.cache.dir" location="${cache.dir}/${build.id}"/>
+    <!-- Directory where Helium can store log files on a temporary basis for a user per build.
+    @type string
+    @scope private
+    -->
+    <property name="build.cache.log.dir" location="${build.cache.dir}/logs"/>
+    <mkdir dir="${build.cache.log.dir}"/>
+    
+    <!-- Path location for the memory tracing data captured by the TracingLogger.
+    @type string
+    @scope private
+    -->
+    <property name="tracing.csv.file" location="${build.cache.dir}/logs/${build.id}_traces.csv"/>
+    
+    <!-- Publish dir configuration. Defines subdir first and next toplevel properties. -->
+    <!-- Subdir part of the publish dir, relative to publish.root.dir
+    @type string
+    -->
+    <property name="publish.subdir" value="${build.name}/builds/${core.build.version}/${build.id}"/>
+    <!-- Subdir part of the publish release dir, relative to publish.root.dir
+    @type string
+    @scope private
+    -->
+    <property name="publish.release.subdir" value="${build.name}/releases/${core.build.version}/${build.id}"/>
+    <!-- Directory where the build is published (includes build.id)
+    @type string
+    -->
+    <property name="publish.dir" location="${publish.root.dir}/${publish.subdir}"/>
+    <!-- The directory where the release of this build is published to on the local network.
+    @type string
+    @scope private
+    -->
+    <property name="publish.release.dir" location="${publish.root.dir}/${publish.release.subdir}"/>
+    <condition property="is.published" else="false">
+        <or>
+            <istrue value="${publish.enabled}"/>
+            <isset property="publish"/>
+        </or>
+    </condition>
+    
+    <!-- The directory where flash images of build can be found
+    @type string
+    @scope private
+    -->
+    <property name="release.images.dir" value="${build.output.dir}/release_flash_images"/>
+    <!-- Defines location of binaries created in build. Used in check-capability target while generating capability scan report.
+    @type string
+    @scope private
+    -->
+    <property name="binary.root" value="${build.drive}/epoc32/release/armv5/urel" />
+    <!-- Location of python library
+    @type string
+    @scope private
+    -->
+    <property name="python.dir" value="${helium.dir}/external/python/lib"/>
+    <!-- @type string
+    @scope private
+    -->
+    <property name="python.tools" value="${helium.dir}/external/python/bin"/>
+
+    <!-- EBS is selected as the default build system, but ec for Electric Cloud could be used. -->
+    <!-- This specifies which build system is used. Default for this is ebs You can use ec for Electric Cloud..
+    @type string
+    -->
+    <property name="build.system" value="ebs"/>
+    <!-- Path for the output XML file generated by genxml used as input to EBS or EC.
+    @type string
+    @scope private
+    -->
+    <property name="genxml.output.file" location="${temp.build.dir}/${build.id}.${sysdef.configuration}.xml" />
+    <!-- The path of the generated canonical System Definition file that contains all the input System Definition file content.
+    @type string
+    @scope private
+    -->
+    <property name="canonical.sysdef.file" value="${build.output.dir}/build/canonical_system_definition.xml"/>
+    <!-- @type string
+    @scope private
+    -->
+    <property name="build.system.${build.system}" value="Not used"/>
+    <!-- This is the file where build summary is stored.
+    @type string
+    @scope private
+    -->
+    <property name="build.summary.file" location="${build.log.dir}/summary/${build.id}_summary.log.xml"/>
+    <property name="error.summary.file" location="${build.log.dir}/summary/${build.id}_error_summary.log.xml"/>
+    <!-- Defines name of the log file.
+    @type string
+    @scope private
+    -->
+    <property name="build.log" value="${build.log.dir}/${build.id}_main.ant.log"/>
+
+    <!-- Path where ant XML files dynamically downloaded from jar file.
+    @type string
+    @scope private
+    -->
+    <property name="antlib.import.module.path" location="${helium.dir}/tools/hlm-antlib-imports"/>
+    
+    <!-- Following are temporarily defined here until global tools available-->
+    <!-- This specifies the directory where Electric Cloud history files are stored. Currently defined in helium.ant.xml and mapped related to publish.root.dir
+    @type string
+    @scope private
+    -->
+    <property name="ec.history.dir" location="${publish.root.dir}\${product.family}\ec_history"/>
+    <!-- Version of build
+    @type string
+    -->
+    <property name="release.label" value="${build.version}"/>
+    <!-- mode is either serial / parallel - default is parallel
+    @type string
+    -->
+    <property name="ec.mode" value="parallel" />
+    <!-- Setting this to "1" will force xml2mak to generate only warnings (instead of errors) for duplicate components in the component list
+    @type string
+    @scope private
+    -->
+    <property name="ec.allow.duplicates" value="0" />
+    <!-- Defines log file where to record archiving of engineering english area.
+    @type string
+    @scope private
+    -->
+    <property name="zip.ee.log.file" location="${build.log.dir}/${build.id}_ee_zip.log" />
+    <!-- The path to the localization zipping log file.
+    @type string
+    @scope private
+    -->
+    <property name="zip.localised.log.file" location="${build.log.dir}/${build.id}_localised_zip.log" />
+    <!-- Defines log file where to record archiving of subcon environment.
+    @type string
+    @scope private
+    -->
+    <property name="zip.subcon.log.file" value="${build.log.dir}/${build.id}_subcon_zip.log" />
+    <!-- The log file name for zipping subcon_roms.
+    @type string
+    @scope private
+    -->
+    <property name="zip.subcon_roms.log.file" location="${build.log.dir}/${build.id}_subcon_roms_zip.log" />
+    <!-- The log file name for zipping trace_roms.
+    @type string
+    @scope private
+    -->
+    <property name="zip.trace_roms.log.file" location="${build.log.dir}/${build.id}_trace_roms_zip.log" />
+    <!-- target to be executed in case of exceptions (mainly to generate the summary and raise signal).
+    @type string
+    @scope private
+    -->
+    <property name="exceptions.target" value="hlm-exception-handler"/>
+    <!-- The tools dependencies Ivy settings configuration file.
+    @type string
+    -->
+    <property name="tools.ivy.config.file" location="${helium.dir}/config/ivy/tools_ivy_settings.xml" />
+    
+    <!-- A file where persistent properties for a build should be stored.
+    @type string
+    @scope private
+    -->
+    <property name="build.property.cache.file" location="${diamonds.build.output.dir}/build_properties_cache.txt" />
+    
+    <!-- Level of ant logging.
+    @type string
+    -->
+    <property name="ant.loglevel" value="verbose"/>
+    
+    <!-- Default number of threads is 2 * NUMBER_OF_PROCESSORS, but this can be overridden by defining the
+    property manually. -->
+    <if>
+        <not>
+            <isset property="number.of.threads"/>
+        </not>
+        <then>
+            <if>
+                <isset property="env.NUMBER_OF_PROCESSORS"/>
+                <then>
+                    <math result="number.of.threads" operand1="${env.NUMBER_OF_PROCESSORS}" operation="*" operand2="2" datatype="int"/>
+                </then>
+                <else>
+                    <!-- how many parallel threads can run
+                    @type string
+                    @scope public
+                    -->
+                    <property name="number.of.threads" value="2"/>
+                </else>
+            </if>
+        </then>
+    </if>
+    
+    <!--* @property product.family
+    In product builds defines the product family that the build product belong to.
+    @type string
+    @editable required
+    @scope public
+    -->
+    
+    <!--* @property product.list
+    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.
+    @type string
+    @editable required
+    @scope public
+    -->
+     
+    <!--* @property diamonds.build.tags
+    
+    @type string
+    @editable optional
+    @scope public
+    -->
+
+</project>
+
+