buildframework/helium/external/cc-customizations/build.xml
author Jon Chatten
Tue, 30 Mar 2010 15:24:50 +0100
branchfix
changeset 421 7db5250b5d4c
parent 1 be27ed110b50
permissions -rw-r--r--
fixed permissions check for executable files exported on systems where 'ls' reports alternative access characters

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
============================================================================ 
Name        : build.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="helium-ccc-build" default="build"> 

	<property name="build.temp.dir" location="${ant.file.helium-ccc-build}/../../build" />
	<property name="bin.dir" location="${ant.file.helium-ccc-build}/../bin" />
	<property name="cc.version" value="2.8.2" />
	<property name="helium.custom.version" value="1" />


	<property name="cc.dir.name" value="cruisecontrol-bin-${cc.version}"/>
	<property name="cc.root.dir" location="${build.temp.dir}/${cc.dir.name}" />
	<property name="cc.overlay.dir" location="${build.temp.dir}/delta/${cc.dir.name}" />
	<property name="cc.zip" location="${ant.file.helium-ccc-build}/../../official/${cc.dir.name}.zip" />

	<fileset id="ref.overlay" dir="${cc.overlay.dir}/..">
		<include name="**"/>
		<exclude name="**/.svn/**"/>
	</fileset>

	
	<target name="clean" description="Cleanup" unless="skip.clean">
		<delete dir="${build.temp.dir}"/>
	</target>
	
	<target name="create-output-dirs">
    	<mkdir dir="${build.temp.dir}"/>
    	<mkdir dir="${build.temp.dir}/classes"/>
    	<mkdir dir="${cc.overlay.dir}/lib"/>		
	</target>

	<target name="check-get-cc">
		<echo>${cc.zip}</echo>
		<available file="${cc.zip}" property="cc.zip.present"/>
	</target>

	<target name="get-cc" depends="check-get-cc" unless="cc.zip.present">
		<mkdir dir="${cc.zip}/.."/>
		<get src="http://kent.dl.sourceforge.net/sourceforge/cruisecontrol/${cc.dir.name}.zip" dest="${cc.zip}" />
	</target>
	
	<target name="unzip-cc" depends="create-output-dirs,get-cc">
		<mkdir dir="${cc.zip}/.."/>
		<unzip src="${cc.zip}" dest="${build.temp.dir}">
			<patternset>
				<include name="*/lib/**"/>
				<include name="*/webapps/dashboard/WEB-INF/classes/**"/>
			</patternset>
		</unzip>
	</target>
	
    <!-- Building CruiseControl customization. -->
    <target name="build" description="Builds CruiseControl specific Helium extensions" depends="unzip-cc">
        <javac srcdir="${ant.file.helium-ccc-build}/../src" destdir="${build.temp.dir}/classes" debug="true" source="1.5" target="1.5">
            <classpath>
                <fileset dir="${cc.root.dir}/lib" includes="*.jar"/>
                <pathelement path="${cc.root.dir}/webapps/dashboard/WEB-INF/classes"/>
            </classpath>
            <include name="**"/>
        </javac>
        <jar destfile="${cc.overlay.dir}/lib/nokia_helium_cc.jar">
	    	<fileset dir="${build.temp.dir}/classes">
				<include name="**/*.class"/>
        	</fileset>
        </jar>
    	<copy todir="${cc.overlay.dir}">
    		<fileset dir="${ant.file.helium-ccc-build}/../overlay">
    			<include name="**"/>
    			<exclude name="**/.svn/**"/>
    		</fileset>
    	</copy>
    	
    	<echo file="${cc.overlay.dir}/HELIUM-README.txt" message=""/>
    	<script language="beanshell">
files = project.getReference("ref.overlay");
String result = "";
for(i = files.iterator();i.hasNext();) {
	file = i.next();
    String filename = file.getFile().getAbsolutePath().substring(file.getBaseDir().getAbsolutePath().length() + 1);		
    result += filename + "\n";
}
project.setProperty("overlay.content", result);
  	    </script>
    	<copy file="${ant.file.helium-ccc-build}/../templates/HELIUM-README.txt" tofile="${cc.overlay.dir}/HELIUM-README.txt" overwrite="true">
			<filterchain>
				<expandproperties/>
			</filterchain>
    	</copy>
    </target>
	
	<!-- Packaging the delivery -->
	<target name="create-release" depends="build">
		<copy todir="${bin.dir}">
			<fileset dir="${cc.overlay.dir}" includes="**"/>
		</copy>
	</target>
	
		
	<target name="all" depends="clean,build"/>
	
	<target name="junit" depends="unzip-cc">
        <delete dir="${build.temp.dir}/junit_classes" failonerror="false"/>
        <mkdir dir="${build.temp.dir}/junit_classes" />
		<path id="cc.classpath">
			<fileset dir="${cc.root.dir}/lib" includes="*.jar"/>
			<pathelement path="${cc.root.dir}/webapps/dashboard/WEB-INF/classes"/>
			<fileset dir="${ant.file.helium-ccc-build}/../bin/lib" includes="*.jar"/>
		</path>

		<javac srcdir="${ant.file.helium-ccc-build}/../tests/src" destdir="${build.temp.dir}/junit_classes" debug="true" source="1.5" target="1.5">
            <classpath refid="cc.classpath" />
            <include name="**/*.java" />
        </javac>
        
        <path id="build.classpath">
            <pathelement location="${build.temp.dir}/junit_classes" />
        </path>
        <junit fork="yes" printsummary="yes" haltonfailure="no" showoutput="yes">
            <formatter type="brief" usefile="false"/>
            <classpath refid="build.classpath" />
            <classpath refid="cc.classpath" />
            
            <batchtest fork="yes" todir="${build.temp.dir}/junit_test">
                <fileset dir="${ant.file.helium-ccc-build}/../tests/src">
                    <include name="**/*Test*.java"/>
                </fileset>
            </batchtest>
        </junit>
	</target>
</project>