buildframework/helium/tools/quality/compatibility_analyser/compatibility.ant.xml
changeset 628 7c4a911dc066
child 645 b8d81fa19e7d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildframework/helium/tools/quality/compatibility_analyser/compatibility.ant.xml	Fri Aug 13 14:59:05 2010 +0300
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+============================================================================ 
+Name        : compatibility.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="compatibility.analyser" xmlns:hlm="http://www.nokia.com/helium">
+    <description>
+        Compatibility Analyser - BC (Binary Comparison) needs the property ca.enabled to
+        be set to true in order to run the targets bc-check and ca-generate-diamond-summary
+    </description>
+
+    <!-- The following parameters need to be set up by the IDO before CheckBC.py will run -->
+    <!-- place where the CheckBC and FilterBC tools are - required
+    @type string
+    @editable required
+    @scope public
+    -->
+    <property name="bctools.root" location="E:\brtaylor\Apps\carbide\plugins\com.nokia.s60tools.compatibilityanalyser.corecomponents_2.0.0\BCTools" />
+
+    <!-- Place where the CheckBC default configuration file is - required (see compatibility analyser user guide for details)
+    it is copied from this location to the output folder  for use by checkBC.py
+    @type string
+    @editable required
+    @scope public
+    -->
+    <property name="default.bc.config"  location="${helium.dir}/tools/quality/compatibility_analyser/ca_config_template.txt" />
+
+    <!-- The bc_config_template.txt file (default configuration file) will be copied from the folder
+    it is saved in within helium to the location named in this property where it will be used.
+    @type string
+    @editable required
+    @scope public
+    -->
+    <property name="bc.config.dir" location="${build.log.dir}/bc" />
+
+    <!-- The bc_config_template.txt file (default configuration file) will be copied from the
+    folder it is saved in within helium to the location and file name named in this property 
+    where it will be used. You need to make sure this is 
+    not the same name as any other IDO or person using the build area
+    @type string
+    @editable required
+    @scope public
+    -->
+    <property name="bc.config.file" location="${bc.config.dir}/bc.config" />
+
+    <!-- Enables the Binary Comparison for libraries when set to true
+    @type boolean
+    @editable required
+    @scope public
+    -->
+    <property name="bc.check.libraries.enabled" value="true" />
+    
+    <!-- Defines the parameter that checkBC.py is called with 
+       -la (all libraries checked) 
+    or -ls lib (single library checked) (lib = the name of library to check)
+    or -lm file.name (multiple libraries checked) 
+    the file.name is a file that contains the names of the library(ies) to check 
+    @type string
+    @editable required
+    @scope public
+    -->
+    <property name="lib.param.val" value="-la" />
+
+    <!-- Enables the Binary Comparison for headers when set to true
+    @type boolean
+    @editable required
+    @scope public
+    -->
+    <property name="bc.check.headers.enabled" value="true" />
+    
+    <!-- Defines the parameter that checkBC.py is called with 
+       -ha (all headers checked) 
+    or -hs file (single header checked) (file= name of header file to check) 
+    or -hm file.name (multiple headers checked) 
+    the file.name is a file that contains the names of the header(s) to check 
+    @type string
+    @editable required
+    @scope public
+    -->
+    <property name="head.param.val" value="-ha" />
+
+    <!-- Adds this to the CA output file name to give it a unique name
+    @type string
+    @editable required
+    @scope public
+    -->
+    <property name="bc.check.report.id" value="${build.name}_${build.number}" />
+
+    <!-- Defines the location of CA output and the input for the diamonds creation target.
+    @type string
+    -->
+    <property name="ido.ca.html.output.dir" location="${build.log.dir}/${build.id}_ca"/>
+
+    <condition property="internal.run.ca">
+        <istrue value="${ca.enabled}" />
+    </condition>
+
+
+<!-- static and dynamic BC Test target -->
+    <target name="bc-check" if="internal.run.ca" >
+        <!-- create BC dir -->
+        <mkdir dir="${build.log.dir}/BC"/>
+        <delete file="${bc.config.file}" quiet="true"/>
+        <delete file="${build.log.dir}/BC/BBCResults.xsl" quiet="true"/>
+
+        <copy file="${default.bc.config}" tofile="${bc.config.file}" failonerror="false" verbose="true"/>
+
+        <!--copy the CSS file to the output folder-->
+        <copy file="${bctools.root}/reports/BBCResults.xsl" tofile="${build.log.dir}/BC/BBCResults.xsl" failonerror="false" verbose="true"/>
+
+        <if>    <!--the library check enaled flag is set then run the check on the lirary files-->
+            <istrue value="${bc.check.libraries.enabled}"/>
+            <then>
+                <exec executable="python" dir="${build.log.dir}/BC" failonerror="true">
+                    <arg value="${bctools.root}/CheckBC.py"/>
+                    <arg value="${bc.config.file}"/>
+                    <arg line="${lib.param.val}"/>
+                    <arg value="-f"/>
+                    <arg value="${bc.check.report.id}"/>
+                </exec>
+            </then>
+        </if>
+
+        <if>    <!-- if the header check flag is set then run the checks on the headers-->
+            <istrue value="${bc.check.headers.enabled}"/>
+            <then>
+                <exec executable="python" dir="${build.log.dir}/BC" failonerror="true">
+                    <arg value="${bctools.root}/CheckBC.py"/>
+                    <arg value="${bc.config.file}"/>
+                    <arg line="${head.param.val}"/>
+                    <arg value="-f"/>
+                    <arg value="${bc.check.report.id}"/>
+                </exec>
+            </then>
+        </if>
+    </target>
+
+
+    <target name="ca-generate-diamond-summary" if="internal.run.ca">
+        <!--use the header.ftl template file to create the init part of the output file
+        that can be copied to the final output file by the java class-->
+        <property name="temp.diamonds.header.xml" location="${env.TEMP}/diamonds_header.xml" />
+        <fmpp sourcefile="${helium.dir}/tools/common/templates/diamonds/diamonds_header.ftl" 
+              outputfile="${temp.diamonds.header.xml}" quiet="true"/>
+        <property name="temp.diamonds.footer.xml" location="${env.TEMP}/diamonds_footer.xml" />
+        <fmpp sourcefile="${helium.dir}/tools/common/templates/diamonds/diamonds_footer.ftl" 
+              outputfile="${temp.diamonds.footer.xml}" quiet="true"/>
+
+        <mkdir dir="${diamonds.build.output.dir}" />
+
+        <if>    <!-- if the header check flag is set then run the checks on the headers-->
+            <istrue value="${bc.check.headers.enabled}"/>
+            <then>
+                <hlm:casummary diamondsHeaderFileName="${temp.diamonds.header.xml}" diamondsFooterFileName="${temp.diamonds.footer.xml}"
+                    header="true"
+                    outputFile="${diamonds.build.output.dir}/ca_summary_header.xml"
+                    inputFile="${bc.config.dir}/headers_report_${bc.check.report.id}.xml" 
+                     />
+            </then>
+        </if>
+
+        <if>    <!--the library check enaled flag is set then run the check on the lirary files-->
+            <istrue value="${bc.check.libraries.enabled}"/>
+            <then>
+                <hlm:casummary diamondsHeaderFileName="${temp.diamonds.header.xml}" diamondsFooterFileName="${temp.diamonds.footer.xml}"
+                    header="false" 
+                    outputFile="${diamonds.build.output.dir}/ca_summary_library.xml"
+                    inputFile="${bc.config.dir}/libraries_report_${bc.check.report.id}.xml"
+                    />
+            </then>
+        </if>
+
+        <delete file="${temp.diamonds.header.xml}" failonerror="false" />
+        <delete file="${temp.diamonds.footer.xml}" failonerror="false" />
+    </target>
+
+</project>