buildframework/helium/tests/minibuilds/ido/build.xml
author lorewang
Wed, 01 Dec 2010 16:05:36 +0800
changeset 715 e0739b8406dd
parent 645 b8d81fa19e7d
permissions -rw-r--r--
Specify extenal tool with path

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
============================================================================ 
Name        : 
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="minibuild.ido" default="minibuild" xmlns:au="org.apache.ant.antunit" xmlns:hlm="http://www.nokia.com/helium">
    <property environment="env" />
    <import file="../site/${env.TEAM}.ant.xml" />
    <dirname property="config.dir" file="${ant.file.minibuild.ido}" />

    <property name="data.drive.letter" value="E" />
    <!-- Enable Helium internal assertion checking. -->
    <property name="hlm.enable.asserts" value="1" />
    <property name="cmt.enabled" value="true" />
    <property name="build.name" value="minibuild_ido" />
    <property name="build.family" value="test_minibuild_ido" />
    <property name="major.version" value="0" />
    <property name="minor.version" value="0" />
    <!-- Compatibility analyser enabling flag, causes binary check to be run -->
    <property name="ca.enabled" value="true" />
    <property name="bc.prep.ca.file" location="${helium.dir}/tools/quality/compatibility_analyser/ca.cfg.xml" />
    
    <condition property="ccm.project.wa_path" value="${data.drive.letter}:\Build_${data.drive.letter}\${env.USERNAME}\ido_wa\${build.name}"  else="${build.name}\wa" > 
          <os family="windows"/>
    </condition> 
    <property name="ccm.enabled" value="true" />
    <property name="iad.pkg.validation.enabled" value="true" />
    
    <!--property name="ido.name" value="test_cmt" /-->


    <!-- build configuration -->
    <property name="sysdef.configurations.list" value="helium_minibuild_ido" />
    <property name="sysdef3.enabled" value="true" />
    <property name="qmake.enabled" value="true" />    
    <condition property="sysdef3.system.definition.files.id" value="system.definition.files.new" else="system.definition.files.old">
        <istrue value="${sysdef3.enabled}" />
    </condition>
    <!--property name="ido.name" value="test_cmt" /-->
    <path id="system.definition.files.old"> 
        <fileset dir="${config.dir}" includes="sysdefs/*.sysdef.xml" />
        <fileset dir="${ccm.project.wa_path}" includes="*/*/*/layers.sysdef.xml" />
    </path>
    
    <path id="system.definition.files.new"> 
        <fileset dir="${ccm.project.wa_path}" includes="*/*/*/package_definition.xml"/>  
    </path>

      
    <path id="system.definition.files">
        <path refid="${sysdef3.system.definition.files.id}" />
    </path>


    <!-- Configuring the build system -->
    <property name="build.system" value="sbs" />
    <property name="rvct.version" value="22_686" />

    <!-- Configuring get latest env. -->
    <property name="s60.grace.service" value="s60_devices_sw" />
    <property name="s60.grace.product" value="DFS7x.92" />
    <property name="s60.grace.release" value="92_\d{6}_hw79" />
    
    <!-- matching mcl_200948_hw79 -->
    <condition property="prep.root.dir" value="${data.drive.letter}:\Build_${data.drive.letter}\${env.USERNAME}\ido_ba\${build.name}" else="${build.name}\ido_ba" >
        <os family="windows"/>
    </condition>
    <!-- Synergy configuration -->
    <property name="ccm.database" value="tr1ido" />
    <property name="ccm.project" value="MinibuildDomain-50_200832:project:tr1test1#1" />
    <property name="prep.delivery.file" location="config/delivery.xml" />
    <property name="publish.ccm.folder" value="tr1ido#2311" />


    <!-- Synergy is not configured -->
    <property name="skip.password.validation" value="1" />

    <!-- IDO robot configuration -->
    <property name="robot.release.enabled" value="true" />
    <tstamp>
        <format property="ido.robot.tstamp" pattern="yyyyMMddhhmmss" />
    </tstamp>
    <property name="s60.build.robot.path" location="${build.drive}/shared_drive/s60robot/${build.name}/${ido.robot.tstamp}" />

    <import file="hack-test.ant.xml" />
    <import file="${helium.dir}/helium.ant.xml" />
    <import file="config/stages_config.ant.xml" />
    <import file="config/build.sbsinput.ant.xml" />
    
    <!-- Run the full sequence of target for the minibuild. ,minibuild-prep,compile-main,zip-ee,minibuild-check-->
    <target name="do-minibuild" depends="ido-update-build-area,
                                            flag-ba-for-deletion,
                                            minibuild-cleanup,
                                            ido-build,
                                            check-diamonds,
                                            minibuild-check,
                                            run-hack,
                                            blocks-create-bundles,
                                            final" />


    <!--ant code coverage for minibuilds-->
    <target name="minibuild">
        <antcall target="database">
            <param name="home.files.only" value="false"/>
        </antcall>
        <mkdir dir="${helium.build.dir}/temp" />
        <property name="config.temp.build.dir" location="${config.dir}/build" />
        <hlm:coveragerecord name="${helium.build.dir}/temp/test.minibuild-ido.xml" action="start" />
        <runtarget target="do-minibuild" />
        <hlm:coveragerecord name="${helium.build.dir}/temp/test.minibuild-ido.xml" action="stop" />
        <fmpp sourcefile="${helium.dir}/tools/common/templates/coveragerecord.txt.ftl" outputfile="${helium.build.dir}/temp/test_minibuild.txt">
            <data expandProperties="yes">
                doc: xml(${helium.build.dir}/temp/test.minibuild-ido.xml)
                database: xml(${database.file})
            </data>
        </fmpp>
        <loadfile srcfile="${helium.build.dir}/temp/test_minibuild.txt" property="ant.coverage.summary" />
        <echo>
The summary of Ant code coverage:

${ant.coverage.summary}</echo>
        <fmpp sourcefile="${helium.dir}/tools/common/templates/coveragerecord.html.ftl" outputfile="${helium.build.dir}/temp/test_minibuild.html">
            <data expandProperties="yes">
                doc: xml(${helium.build.dir}/temp/test.minibuild-ido.xml)
                database: xml(${database.file})
            </data>
        </fmpp>
    </target>


    <!-- Preparing the content on top of the env -->
    <target name="ido-50-build" depends="ido-build-prep,compile-main,build-log-summary,render-internal-exports,
                                         update-policy-src-reference,render-validate-policy,check-sf-source-header,
                                         ido-codescanner,iad-check-pkg-version,ats-test,publish-tasks-to-folder,
                                         ido-sources-to-s60-build-robot" />
    <target name="ido-build-prep" depends="ido-configure-prep,init,log-build-env,set-arm-version,check-free-space,
                                           diamonds,do-prep-work-area,ido-prep-clean,ido-prep-copy,create-bom" />

    <!-- needed to defined skip.prep-drive -->
    <target name="ido-configure-prep">
        <property name="skip.prep-drive" value="true" />
    </target>

    <!-- real IDO use this to switch branch target. -->
    <target name="ido-build">
        <runtarget target="ido-50-build" />
    </target>


    <target name="check-diamonds">
        <!--loadfile srcfile="${build.log.dir}/diamonds-start.log.xml" property="diamonds.log.start" />
        <echo>${diamonds.log.start}</echo-->
        <!--loadresource property="diamonds.log.start.output">
            <url url="${diamonds.build.url}?fmt=xml" />
        </loadresource-->
        <!--echo>${diamonds.log.start.output}</echo-->
        <xmlvalidate lenient="yes">
            <fileset dir="${build.log.dir}">
                <include name="diamonds-finish.xml"/>
                <include name="diamonds-full-results.xml"/>
                <include name="diamonds-start.log.xml"/>
                <include name="check-tool-dependencies.xml"/>
                <include name="compile-main.xml"/>
                <include name="create-bom.xml"/>
                <include name="build-time.xml"/>
            </fileset>
        </xmlvalidate>
    </target>

    <target name="minibuild-cleanup">
        <delete verbose="true" includeemptydirs="true" failonerror="false">
            <fileset dir="${build.drive}/" casesensitive="false">
                <include name="makefile" />
                <include name="*.mk" />
                <include name="ecloud_tmp_*/**" />
                <include name="emake.*" />
                <include name="epoc32/build/**" />
                <include name="epoc32/rombuild/*/**" />
                <include name="output/**" />
                <include name="timestart.txt" />
                <include name="timestop.txt" />
            </fileset>
        </delete>
    </target>


    <target name="minibuild-check">
        <!-- Check if prep has set some prop correctly... -->
        <!-- remember to update the selection by the environment variable in hlm.bat when switching to other compiler version -->
        <echo>'${arm.compiler.version}'</echo>
        <au:assertMatches string="${arm.compiler.version}" pattern="RVCT2\.2 \[Build 686\]" casesensitive="false" multiline="true" />

        <!-- Check if compile-main step did what expected... -->
        <au:assertFileExists file="${canonical.sysdef.file}" />
        <if>
            <or>
                <isset property="build.system.ec-helium" />
                <isset property="build.system.ec" />
            </or>
            <then>
                <au:assertFileExists file="${build.drive}/helium_minibuild_ido.make" />
                <au:assertFileExists file="${build.drive}/helium_minibuild_ido_clean.make" />
                <au:assertFileExists file="${build.drive}/emake.data" />

                <au:assertFileExists file="${temp.build.dir}/${build.id}.helium_minibuild_ido_run_emake.bat" />
                <au:assertFileExists file="${temp.build.dir}/${build.id}.helium_minibuild_ido_clean_run_emake.bat" />
            </then>
        </if>
        
        <!-- Check if stagelogging step did what expected... -->
        <au:assertFileExists file="${build.log.dir}/${build.id}_ido_prep.ant.log" />
        <au:assertFileExists file="${build.log.dir}/${build.id}_compile.ant.log" />
        <au:assertFileExists file="${build.log.dir}/${build.id}_test.ant.log" />
    </target>


    <target name="update-policy-src-reference">
        <property name="policy.src.mapping.file" location="${build.output.dir}/build/ado_mapping_policy_src.ini" />
        <hlm:createAdoMappingMacro adoMapFile="${policy.src.mapping.file}" />
        <hlm:iniKeys2Path ini="${policy.src.mapping.file}" pathid="reference.policy.path.list"/>
    </target>

</project>