--- a/buildframework/helium/helium.ant.xml Wed Jun 16 16:51:40 2010 +0300
+++ b/buildframework/helium/helium.ant.xml Fri Aug 13 14:59:05 2010 +0300
@@ -24,9 +24,9 @@
<description>
Main full build targets and properties
</description>
+
<property environment="env" />
-
<!-- Load the current Helium version. -->
<!--* @property helium.version
@type string
@@ -34,591 +34,19 @@
-->
<property file="${helium.dir}/config/version.txt"/>
- <!-- Libraries
- ======================================================================-->
+
<import file="helium_preinclude.ant.xml"/>
- <!-- The path where Helium-specific outputs are written to.
- @type string
- @scope private
- -->
- <property name="helium.build.dir" location="${helium.dir}/build"/>
-
- <hlm:typedef file="${helium.dir}/tools/common/common.antlib.xml" uri="http://www.nokia.com/helium"/>
-
- <!-- 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>
- <exec osfamily="windows" executable="subst" failonerror="false">
- <arg value="${build.drive}" />
- <arg value="${env.TEMP}/helium/temp_drive" />
- </exec>
- <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>
-
- <if>
- <and>
- <isset property="major.version"/>
- <isset property="minor.version"/>
- </and>
- <then>
- <!-- 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
- -->
- <property name="core.build.version" value="${major.version}.${minor.version}"/>
- </then>
- <else>
- <!-- 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
- -->
- <property name="core.build.version" value="${env.USERNAME}"/>
- </else>
- </if>
-
- <!--* @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"/>
- <if>
- <and>
- <isset property="core.build.version"/>
- <isset property="build.number"/>
- </and>
- <then>
- <!-- Version of the build.
- @type string
- @scope private
- -->
- <property name="build.version" value="${core.build.version}.${build.number}"/>
- </then>
- <else>
- <!-- Version of the build.
- @type string
- @scope private
- -->
- <property name="build.version" value="${env.USERNAME}"/>
- </else>
- </if>
-
- <!-- 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>
+ <hlm:typedef file="${helium.dir}/tools/common/common.antlib.xml" uri="http://www.nokia.com/helium"/>
- <!-- 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">
- <isset property="publish"/>
- </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"/>
- <!-- Diamonds Configuration file with full path used for diamonds listener.
- @type string
- -->
- <property name="diamonds.listener.configuration.file" location="${helium.dir}/config/diamonds_config.xml.ftl"/>
- <!-- 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" />
- <!-- The path for the Python script to handle the ccm task bridge to the ccm.py module.
- @type string
- @scope private
- -->
- <property name="ccmtask.python.script.file" location="${helium.dir}/tools/preparation/synergy/ccmtask.jep" />
- <!-- Level of ant logging.
- @type string
- -->
- <property name="ant.loglevel" value="verbose"/>
-
- <if>
- <available file="${build.property.cache.file}"/>
- <then>
- <property file="${build.property.cache.file}"/>
- </then>
- </if>
-
-
- <!-- 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
- -->
+ <!-- Import default configuration settings. -->
+ <import file="tools/common/default_config.ant.xml"/>
<!-- Import basic targets.
The intention would be to split the targets into separate files somewhat
- matching the build phases located inside \nbuild and import each one here.
+ matching the build phases and import each one here.
-->
<import file="extensions/nokia/build.xml" optional="true"/>
<import file="tools/preparation/preparation.ant.xml"/>
@@ -643,28 +71,8 @@
<import file="config/signaling_config_default.ant.xml"/>
<import file="config/stages_config_default.ant.xml"/>
<import file="config/metadata_filter_config_default.ant.xml"/>
+ <import file="config/diamonds_config_default.ant.xml"/>
-
- <!-- Top level build execution targets.
-
- All of these should simply depend on other targets. They should not contain any tasks.
- -->
-
- <!-- Top-level target for platform builds. -->
- <target name="platform-build"
- depends="prep,prebuild,compile-main,postbuild,build-roms,zip-ee,publish-generic,
- report,final"
- description="The default platform build"/>
-
- <!-- Top-level target for IBUSAL builds. -->
- <target name="ibusal-build"
- depends="prep-drive,init-build-area,prebuild,build-info,log-build-env,
- check-env-prep,diamonds,prep-copy,set-arm-version,
- create-canonical-sysdef-file,compile-main,zip-ee"
- description="The default IBUSAL build"/>
+</project>
- <!-- Top-level target for IDO builds. -->
- <target name="ido-build"
- depends="diamonds,compile-clean,compile-main,build-roms"
- description="IDO build"/>
-</project>
+