blob: e6a73cbf937a6ac0b2c0ee5c9b753ecab36dea06 [file] [log] [blame]
<?xml version="1.0"?>
<!--
You must:
* have JAVA_HOME set to a recent JDK 6 installation
* have JAVA5_HOME set to a recent JDK 1.5.0 installation,
or specify this with -Djava5home=
* have unzipped $JAVA_HOME/src.zip to $JAVA_HOME/src,
or specify this with -Djavasrc=
* specify -Drelease=r09 (for example) on the ant command line
-->
<project name="guava" default="compile">
<property environment="env"/>
<!-- these properties can be overridden at the command line with
-Dname=value, or in IDEA in the ant properties dialog -->
<property name="release" value="unknown"/>
<property name="java5home" value="${env.JAVA5_HOME}" />
<property name="javasrc" value="${env.JAVA_HOME}/src" />
<target name="compile" description="Compile Java source.">
<mkdir dir="build/classes"/>
<property name="java5bootclasspath" value="${java5home}/jre/lib/rt.jar"/>
<available file="${java5bootclasspath}" property="isJava5HomeSetRight"/>
<fail unless="isJava5HomeSetRight"
message="JAVA5_HOME must be set to a valid JDK 1.5 installation, containing a jre/lib/rt.jar file"/>
<javac srcdir="src"
debug="on"
destdir="build/classes"
source="1.5"
target="1.5"
bootclasspath="${java5bootclasspath}"
extdirs="">
<compilerarg value="-Xlint:all"/>
<classpath>
<pathelement location="lib/jsr305.jar"/>
</classpath>
</javac>
</target>
<target name="jar" depends="compile" description="Build jar.">
<mkdir dir="build/dist/guava-${release}"/>
<jar jarfile="build/dist/guava-${release}/guava-${release}.jar">
<fileset dir="build/classes"/>
</jar>
</target>
<target name="javadoc" description="Generate Javadocs">
<delete dir="build/javadoc"/>
<mkdir dir="build/javadoc"/>
<javadoc packagenames="com.google.common.*"
destdir="build/javadoc"
encoding="UTF-8"
docencoding="UTF-8"
charset="UTF-8"
use="true"
author="true"
protected="true"
linksource="true"
windowtitle="Guava: Google Core Libraries for Java - ${release}">
<sourcepath>
<pathelement location="src"/>
<pathelement location="${javasrc}"/>
</sourcepath>
<!-- workaround for http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6442982 -->
<classpath>
<pathelement location="lib/jsr305.jar"/>
</classpath>
<link href="http://jsr-305.googlecode.com/svn/trunk/javadoc"/>
<link href="http://java.sun.com/javase/6/docs/api"/>
</javadoc>
<!-- remove dumb comments inserted by javadoc so that we only see svn diffs
when things actually change. -->
<replaceregexp
match="^.*(META NAME=.date|generated by javadoc ).*$\n"
replace=""
flags="gmi">
<fileset dir="build/javadoc" includes="**/*.html"/>
</replaceregexp>
</target>
<target name="jdiff" description="Generate JDiff report">
<mkdir dir="build/javadoc/jdiff"/>
<javadoc doclet="jdiff.JDiff"
docletpath="lib/jdiff.jar"
additionalparam="-apiname 'Guava ${release}' -apidir build/javadoc/jdiff"
packagenames="com.google.common.*"
destdir="build/javadoc/jdiff">
<sourcepath>
<pathelement location="src"/>
</sourcepath>
<classpath>
<pathelement location="lib/jsr305.jar"/>
</classpath>
</javadoc>
<!-- remove dumb comments inserted by jdiff so that we only see svn diffs when things actually change. -->
<replaceregexp match="^.!--\s+(on|Command line arguments) .* -->$\n"
replace="" flags="gm" file="build/javadoc/jdiff/Guava_${release}.xml"/>
</target>
<target name="zipsrc" description="Build zip of source.">
<mkdir dir="build/dist/guava-${release}"/>
<jar jarfile="build/dist/guava-${release}/guava-src-${release}.zip">
<fileset dir="src"/>
</jar>
</target>
<target name="dist" depends="jar, zipsrc, javadoc"
description="Build entire distribution.">
<copy toDir="build/dist/guava-${release}" file="COPYING"/>
<copy toDir="build/dist/guava-${release}" file="README"/>
<copy toDir="build/dist/guava-${release}">
<fileset dir="build" includes="javadoc/**/*" excludes="javadoc/jdiff/**/*"/>
</copy>
<zip destfile="build/guava-${release}.zip"
basedir="build/dist"/>
</target>
<target name="clean"
description="Remove generated files.">
<delete dir="build"/>
</target>
</project>