<?xml version="1.0"?>

<!--

  You must:
   * have JAVA_HOME set to a recent JDK 6 installation
   * have JAVA5_HOME set to a JDK 1.5.0 (_0) installation
   * have unzipped $JAVA_HOME/src.zip to $JAVA_HOME/src
   * specify -Dversion=1.0-rc1 (for example) on the ant command line

-->

<project name="google-collections" default="compile">

  <property environment="env"/>
  <property file="build.properties"/>

  <!-- can be overridden at the command line with -Dversion=
       or in IDEA, in the ant properties dialog -->
  <property name="version" value="snapshot"/>

  <target name="compile" description="Compile Java source.">
    <mkdir dir="${build.dir}/classes"/>
    <javac
      srcdir="${src.dir}"
      destdir="${build.dir}/classes"
      debug="on"
      target="1.5"
      bootclasspath="${env.JAVA5_HOME}/lib/rt.jar"
      extdirs=""
    >
      <compilerarg value="-Xlint:all"/>
      <classpath>
        <pathelement location="${lib.dir}/jsr305.jar"/>
      </classpath>
    </javac>

<!-- uncomment when GWT support is official
    <javac
      srcdir="${gwt.dir}"
      destdir="${build.dir}/classes"
      debug="on"
      target="1.5"
      bootclasspath="${env.JAVA5_HOME}/lib/rt.jar"
      extdirs=""
    >
      <include name="${gwt.serializers}"/>
      <compilerarg value="-Xlint:all"/>
      <classpath>
        <pathelement location="${build.dir}/dist/google-collect-${version}/google-collect-${version}.jar"/>
        <pathelement location="${lib.dir}/jsr305.jar"/>
        <pathelement location="${lib.dir}/gwt-servlet.jar"/>
      </classpath>
    </javac>
-->
  </target>

  <target name="testfw" description="Compile test framework.">
    <mkdir dir="${build.dir}/testfwclasses"/>
    <javac
      srcdir="${testfw.dir}"
      destdir="${build.dir}/testfwclasses"
      debug="on"
      target="1.5"
      bootclasspath="${env.JAVA5_HOME}/lib/rt.jar"
      extdirs=""
    >
      <compilerarg value="-Xlint:all"/>
      <classpath>
        <pathelement location="${lib.dir}/junit.jar"/>
      </classpath>
    </javac>
  </target>

  <target name="test.compile"
      depends="dist,testfw"
      description="Compile test source.">
    <mkdir dir="${build.dir}/test"/>
    <javac srcdir="${test.dir}"
      destdir="${build.dir}/test"
      debug="on"
    >
      <compilerarg value="-Xlint:all"/>
      <classpath>
        <pathelement location="${build.dir}/dist/google-collect-${version}/google-collect-${version}.jar"/>
        <pathelement location="${build.dir}/testfwclasses"/>
        <pathelement location="${lib.dir}/junit.jar"/>
        <pathelement location="${lib.dir}/tl4j-1.1.0.jar"/>
        <pathelement location="${lib.dir}/jsr305.jar"/>
        <pathelement location="${lib.dir}/easymock-2.4.jar"/>
        <pathelement location="${lib.dir}/easymockclassextension-2.4.jar"/>
      </classpath>
    </javac>
  </target>

  <target name="test"
      depends="test.compile"
      description="Execute JUnit tests.">
    <java fork="true"
        classname="junit.textui.TestRunner"
        failonerror="true"
        taskname="junit">
      <classpath>
        <pathelement location="${build.dir}/test"/>
        <pathelement location="${build.dir}/dist/google-collect-${version}/google-collect-${version}.jar"/>
        <pathelement location="${build.dir}/testfwclasses"/>
        <pathelement location="${lib.dir}/junit.jar"/>
        <pathelement location="${lib.dir}/tl4j-1.1.0.jar"/>
        <pathelement location="${lib.dir}/jsr305.jar"/>
        <pathelement location="${lib.dir}/easymock-2.4.jar"/>
        <pathelement location="${lib.dir}/easymockclassextension-2.4.jar"/>
        <pathelement location="${lib.dir}/cglib-nodep-2.2.jar"/>
      </classpath>
      <arg value="com.google.common.collect.CollectTestSuite"/>
    </java>
  </target>

  <target name="clean"
      description="Remove generated files.">
    <delete dir="${build.dir}"/>
  </target>

  <target name="jar" depends="compile" description="Build jars.">
    <mkdir dir="${build.dir}/dist/google-collect-${version}"/>
    <jar jarfile="${build.dir}/dist/google-collect-${version}/google-collect-${version}.jar">
      <fileset dir="${build.dir}/classes"/>
    </jar>
  </target>

  <target name="jargwt" description="Build GWT jar.">
    <mkdir dir="${build.dir}/dist/google-collect-${version}"/>
    <jar jarfile="${build.dir}/dist/google-collect-${version}/google-collect-gwt-${version}.jar">
      <fileset dir="${gwt.dir}"/>
      <fileset dir="${src.dir}">
        <and>
          <contains text="@GwtCompatible"/>
          <not>
            <contains text="emulated = true"/>
          </not>
        </and>
      </fileset>
    </jar>
  </target>

  <target name="jarsrc" description="Build jar of source.">
    <mkdir dir="${build.dir}/dist/google-collect-${version}"/>
    <jar jarfile="${build.dir}/dist/google-collect-${version}/src-${version}.zip">
      <fileset dir="${src.dir}"/>
<!-- uncomment when GWT support is official 
      <fileset dir="${gwt.dir}">
        <include name="${gwt.serializers}"/>
      </fileset>
-->
    </jar>
  </target>

  <target name="dist" depends="jar, jarsrc, javadoc"
       description="Build entire distribution.">
    <copy toDir="${build.dir}/dist/google-collect-${version}" file="COPYING"/>
    <copy toDir="${build.dir}/dist/google-collect-${version}">
      <fileset dir="${build.dir}" includes="javadoc/**/*"/>
    </copy>

    <zip destfile="${build.dir}/google-collect-${version}.zip"
      basedir="${build.dir}/dist"/>
  </target>

  <target name="javadoc"
      description="Generate Javadocs.">
    <delete dir="${build.dir}/javadoc"/>
    <mkdir dir="${build.dir}/javadoc"/>
    <javadoc packagenames="com.google.common.annotations,com.google.common.base,com.google.common.collect"
         destdir="${build.dir}/javadoc"
         use="true"
         author="true"
         protected="true"
         windowtitle="Google Collections Library ${version}">
      <sourcepath>
        <pathelement location="${src.dir}"/>
        <pathelement location="${env.JAVA_HOME}/src"/>
      </sourcepath>
      <classpath>
        <pathelement location="${lib.dir}/jsr305.jar"/>
      </classpath>
      <link href="http://jsr-305.googlecode.com/svn/trunk/javadoc"/>
      <link href="http://java.sun.com/javase/6/docs/api"/>
    </javadoc>
  </target>
</project>
