buildframework/helium/tools/quality/conflict-checker.ant.xml
changeset 1 be27ed110b50
child 179 d8ac696cc51f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildframework/helium/tools/quality/conflict-checker.ant.xml	Wed Oct 28 14:39:48 2009 +0000
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+============================================================================ 
+Name        : conflict-checker.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="quality.conflict-checker" xmlns:hlm="http://www.nokia.com/helium">
+    <description>
+        Analyse the content created from two different components.
+    </description>
+
+    <property name="build.duplicates.log" location="${build.log.dir}/${build.id}_build_duplicates.xml" />
+
+    <!--
+        This macro extract the list of files generated/exported several time from different component 
+        during the build . It uses the output of "abld -what" commands to extract the information.
+        The output is an XML file that can be transform to anything using XSLT of FMPP.
+        e.g:
+        <pre>
+        <hlm:checkBuildDuplicatesMacro output="${build.duplicates.log}">
+               <fileset dir="${build.log.dir}">
+                <include name="${build.id}.*_compile.log"/>
+                <include name="${build.id}.what.cmaker.log"/>
+                <exclude name="${build.id}.*_output_build.log"/>
+            </fileset>
+        </hlm:checkBuildDuplicatesMacro>
+        </pre>
+    -->
+    <scriptdef name="checkBuildDuplicatesMacro" language="jython" uri="http://www.nokia.com/helium">
+        <attribute name="output" />
+        <element name="fileset" type="fileset" />
+        <![CDATA[
+import integration.ant
+integration.ant.check_build_duplicates_task(project, self, attributes, elements)
+        ]]>
+    </scriptdef>
+
+    <!-- 
+       Check if the build duplicated needs to be run.
+    -->
+    <target name="check-build-duplicates">
+        <if>
+            <or>
+                <equals arg1="${build.system}" arg2="sbs" />
+                <equals arg1="${build.system}" arg2="sbs-ec" />
+            </or>
+            <then>
+                <property name="skip.build.duplicates" value="" />
+            </then>
+        </if>
+    </target>
+
+    <!-- Parse all the build log and extract files that are generated/exported
+        several times.
+    -->
+    <target name="integration-build-duplicates" depends="check-build-duplicates" unless="skip.build.duplicates">
+        <hlm:checkBuildDuplicatesMacro output="${build.duplicates.log}">
+            <fileset dir="${build.log.dir}">
+                <include name="${build.id}.*_compile.log" />
+                <include name="${build.id}.what.cmaker.log" />
+                <exclude name="${build.id}.*_output_build.log" />
+            </fileset>
+        </hlm:checkBuildDuplicatesMacro>
+    </target>
+
+    <!-- Render the build duplicates xml file into an HTML output. -->
+    <target name="render-build-duplicates" depends="integration-build-duplicates" unless="skip.build.duplicates">
+        <fmpp sourceFile="${helium.dir}/tools/common/templates/integration/build-duplicates.html.ftl" outputFile="${build.log.dir}/${build.id}_build-duplicates.html">
+            <freemarkerLinks expandProperties="yes">
+                            macro: ${helium.dir}/tools/common/templates/macro
+                        </freemarkerLinks>
+            <data expandProperties="yes">
+                            doc: xml(${build.duplicates.log})
+                            ant: antProperties()
+                        </data>
+        </fmpp>
+    </target>
+
+</project>