--- /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>
+
+