<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
<!-- | |
Copyright (c) 2012 Original authors and others. | |
All rights reserved. This program and the accompanying materials | |
are made available under the terms of the Eclipse Public License v1.0 | |
which accompanies this distribution, and is available at | |
http://www.eclipse.org/legal/epl-v10.html | |
Contributors: | |
Original authors and others - initial API and implementation | |
--> | |
<!-- | |
Top level Ant build file for NatTable | |
The following properties must be present in ${user.home} directory. Alternatively they can | |
be specified on the command line (-DECLIPSE_HOME="dir"): | |
ECLIPSE_HOME: Location of eclipse install. SWT and other eclipse deps are picked up from the plugins dir | |
FINDBUGS_HOME: Location of the findbugs install. | |
Also see: common.xml | |
--> | |
<project> | |
<property name="build.tools.dir" value="deps/tools" /> | |
<property name="reports.dir" value="reports" /> | |
<property name="coverage.reports.dir" value="${reports.dir}/coverage" /> | |
<!-- Setup emma task --> | |
<path id="emma.lib"> | |
<pathelement location="${build.tools.dir}/emma.jar" /> | |
<pathelement location="${build.tools.dir}/emma_ant.jar" /> | |
</path> | |
<taskdef resource="emma_ant.properties" classpathref="emma.lib" /> | |
<!-- Setup findbugs (static analysis) task --> | |
<property name="FINDBUGS_HOME" value="${user.home}/findbugs-1.3.9" /> | |
<path id="findbugs.lib" location="${FINDBUGS_HOME}/lib/findbugs-ant.jar" /> | |
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpathref="findbugs.lib"/> | |
<!-- | |
Macro to run targets on all subprojects. The order of the build is important. | |
Dependencies must be built first. | |
Subprojects supply their own properties (in their repective build.xml files) | |
to tweak aspects of the build | |
--> | |
<macrodef name="iterate"> | |
<attribute name="target" /> | |
<sequential> | |
<subant target="@{target}"> | |
<fileset file="org.eclipse.nebula.widgets.nattable.core/build.xml" /> | |
</subant> | |
<subant target="@{target}"> | |
<fileset file="org.eclipse.nebula.widgets.nattable.core.test/build.xml" /> | |
</subant> | |
<subant target="@{target}"> | |
<fileset file="org.eclipse.nebula.widgets.nattable.extension.glazedlists/build.xml"/> | |
</subant> | |
<subant target="@{target}"> | |
<fileset file="org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/build.xml"/> | |
</subant> | |
<subant target="@{target}"> | |
<fileset file="org.eclipse.nebula.widgets.nattable.dataset/build.xml"/> | |
</subant> | |
<subant target="@{target}"> | |
<fileset file="org.eclipse.nebula.widgets.nattable.extension.builder/build.xml"/> | |
</subant> | |
<subant target="@{target}"> | |
<fileset file="org.eclipse.nebula.widgets.nattable.examples/build.xml"/> | |
</subant> | |
</sequential> | |
</macrodef> | |
<target name="clean"> | |
<iterate target="clean" /> | |
<delete dir="${reports.dir}" /> | |
</target> | |
<!-- Compiles and build jars --> | |
<target name="build"> | |
<iterate target="build" /> | |
</target> | |
<!-- Runs unit tests. | |
Triggers report generation for JUnit and Emma | |
Triggers findbugs for static analysis | |
--> | |
<target name="test"> | |
<iterate target="test" /> | |
<antcall target="coverage.report"/> | |
</target> | |
<!-- | |
Emma coverage report. Invoked at the end of the test run. | |
Note: This must be run at the top level, since it needs to aggregate test | |
coverage data. | |
--> | |
<target name="coverage.report"> | |
<mkdir dir="${coverage.reports.dir}" /> | |
<emma> | |
<report encoding="UTF-8"> | |
<sourcepath> | |
<dirset dir="${basedir}"> | |
<include name="**/src" /> | |
</dirset> | |
</sourcepath> | |
<fileset dir="${basedir}"> | |
<include name="**/*.emma" /> | |
</fileset> | |
<xml outfile="${coverage.reports.dir}/coverage.xml" depth="method" /> | |
<html outfile="${coverage.reports.dir}/coverage.html" | |
columns="name,line,method,class" | |
sort="+class, +line" | |
depth="method" /> | |
</report> | |
</emma> | |
</target> | |
</project> |