blob: 2d52200d14d06f954ac80d3c9f72509b39b707b7 [file] [log] [blame]
<?xml version="1.0"?>
<project name="caliper" default="install">
<!-- can be overridden at the command line with -Dversion=
or in IDEA, in the ant properties dialog -->
<property name="version" value="0.0"/> <!-- subversion revision? -->
<property name="frameworkclasses" value="build/classes/framework"/>
<property name="otherclasses" value="build/classes/other"/>
<property name="installroot" value="build/caliper-${version}"/>
<property name="javadocroot" value="${installroot}/docs/api"/>
<property name="collections" value="lib/google-collect-1.0-rc4.jar"/>
<path id="dependencies">
<pathelement location="${collections}"/>
</path>
<path id="testdependencies">
<path refid="dependencies"/>
<pathelement location="${frameworkclasses}"/>
<pathelement location="lib/junit.jar"/>
</path>
<target name="compile"
description="Compile all Java source code">
<mkdir dir="${frameworkclasses}"/>
<javac srcdir="src"
includes="com/**"
destdir="${frameworkclasses}"
debug="on"
source="1.5"
target="1.5"
classpathref="dependencies">
<compilerarg value="-Xlint"/>
<!--compilerarg value="-Werror"/-->
</javac>
<mkdir dir="${otherclasses}"/>
<javac srcdir="src"
excludes="com/**"
debug="on"
destdir="${otherclasses}"
source="1.5"
target="1.5">
<compilerarg value="-Xlint"/>
<!--compilerarg value="-Werror"/-->
<classpath>
<path refid="testdependencies"/>
</classpath>
</javac>
</target>
<target name="test"
depends="compile"
description="Run unit tests">
<junit fork="true"
haltonfailure="true">
<classpath>
<pathelement location="${otherclasses}"/>
<path refid="testdependencies"/>
</classpath>
<batchtest>
<fileset dir="src">
<include name="test/*Test.java"/>
</fileset>
</batchtest>
</junit>
</target>
<target name="buildjar"
depends="compile"
description="Build JAR archive of caliper framework">
<mkdir dir="${installroot}/lib"/>
<taskdef name="jarjar"
classname="com.tonicsystems.jarjar.JarJarTask"
classpath="lib/jarjar-1.0rc8.jar"/>
<jarjar jarfile="${installroot}/lib/caliper-${version}.jar">
<fileset dir="${frameworkclasses}"/>
<zipfileset src="${collections}"/>
<rule pattern="com.google.common.**" result="com.google.caliper.internal.guava.@1"/>
<keep pattern="com.google.caliper.**"/>
<!-- include some files for GWT's benefit -->
<zipfileset dir="src">
<include name="com/google/caliper/Run.java"/>
<include name="com/google/caliper/Scenario.java"/>
<include name="CaliperCore.gwt.xml" />
</zipfileset>
</jarjar>
</target>
<target name="javadoc"
description="Generate API documentation to ${javadocroot}">
<delete dir="${javadocroot}"/> <!-- TODO: figure out how to make this more incremental -->
<mkdir dir="${javadocroot}"/>
<javadoc packagenames="com.google.caliper"
destdir="${javadocroot}"
use="true"
author="true"
protected="true"
windowtitle="Caliper ${version}">
<sourcepath>
<pathelement location="src"/>
</sourcepath>
<classpath refid="dependencies"/>
<link href="http://google-collections.googlecode.com/svn/trunk/javadoc/"/>
<link href="http://java.sun.com/javase/6/docs/api"/>
</javadoc>
</target>
<target name="install" depends="buildjar, javadoc"
description="Create a complete installation tree in ./build/caliper-*">
<mkdir dir="${installroot}"/>
<zip zipfile="${installroot}/src-${version}.zip">
<fileset dir="src"/>
</zip>
<copy toDir="${installroot}" file="COPYING"/>
<copy toDir="${installroot}" file="src/scripts/caliper">
<filterset>
<filter token="VERSION" value="${version}"/>
</filterset>
</copy>
<chmod perm="ugo=rx" file="${installroot}/caliper"/>
</target>
<target name="dist"
depends="install"
description="Create a zipped distribution for upload to Google Code">
<zip destfile="build/caliper-${version}.zip">
<zipfileset dir="build/caliper-${version}"
excludes="caliper"
prefix="caliper-${version}"/>
<zipfileset file="build/caliper-${version}/caliper"
prefix="caliper-${version}"
filemode="555"/>
</zip>
</target>
<target name="clean"
description="Remove all generated files.">
<delete dir="build"/>
</target>
</project>