<project name="doc" default="all" basedir=".">
  <property name="gwt.root" location=".." />
  <property name="project.tail" value="doc" />
  <import file="${gwt.root}/common.ant.xml" />

  <property.ensure name="java.tools.path" location="${java.home}/../lib/tools.jar" unless="build.host.ismac" message="Cannot find ${java.home}/../lib/tools.jar; please use a JDK when building doc rather than a JRE." />

  <property.ensure name="gwt.user.jar" location="${gwt.build.lib}/gwt-user.jar" />
  <!-- Platform shouldn't matter here, just picking one -->
  <property.ensure name="gwt.dev.jar" location="${gwt.build.lib}/gwt-dev.jar" />

  <!-- This file controls the contents of the javadoc -->
  <property file="packages.properties" />

  <!--
    *** Note that if the USER_SOURCE_PATH paths are updated,
    the fileset dependencies in the outofdate tags in the
    javadoc target must be updated as well.
  -->
  <path id="USER_SOURCE_PATH">
    <pathelement location="${gwt.root}/user/src" />
    <pathelement location="${gwt.root}/user/javadoc" />
    <pathelement location="${gwt.root}/user/super" />
    <pathelement location="${gwt.root}/dev/core/src" />
    <pathelement location="${gwt.root}/dev/core/super" />
  </path>

  <path id="USER_CLASS_PATH">
    <pathelement location="${gwt.user.jar}" />
    <pathelement location="${gwt.dev.jar}" />
    <pathelement location="${gwt.tools.lib}/junit/junit-3.8.1.jar" />
    <pathelement location="${gwt.tools.lib}/jfreechart/jfreechart-1.0.3.jar" />
  </path>

  <path id="DOC_PATH">
    <pathelement location="./src" />
    <pathelement location="${gwt.build.lib}/gwt-doctool.jar" />
    <path path="${java.tools.path}" />
    <path refid="USER_SOURCE_PATH" />
  </path>

  <target name="javadoc">
    <outofdate>
      <sourcefiles>
        <fileset file="./src/gwt-user.html" />
        <fileset dir="${gwt.root}/user/src">
          <include name="**/*.java" />
        </fileset>
        <fileset dir="${gwt.root}/user/javadoc">
          <include name="**/*.java" />
        </fileset>
        <fileset dir="${gwt.root}/user/super">
          <include name="**/*.java" />
        </fileset>
        <fileset dir="${gwt.root}/dev/core/src">
          <include name="**/*.java" />
        </fileset>
        <fileset dir="${gwt.root}/dev/core/super">
          <include name="**/*.java" />
        </fileset>
      </sourcefiles>
      <targetfiles>
        <!--
          only checks one output file, will not rebuild other
          files if this one is up to date
        -->
        <pathelement path="${project.build}/javadoc/index.html" />
      </targetfiles>
      <sequential>
        <echo>Building javadoc</echo>
        <java classpathref="DOC_PATH" classname="com.google.doctool.custom.GWTJavaDoclet" fork="yes" failonerror="true">
          <jvmarg value="-Xmx512M" />
          <arg value="-quiet" />
          <arg value="-notimestamp" />
          <arg value="-source" />
          <arg value="1.5" />
          <arg value="-windowtitle" />
          <arg value="Google Web Toolkit Javadoc" />
          <arg value="-doctitle" />
          <arg value="Google Web Toolkit API Reference" />
          <arg value="-header" />
          <arg value="GWT ${gwt.version}" />
          <arg value="-encoding"/>
          <arg value="UTF-8"/>
          <arg value="-d" />
          <arg value="${project.build}/javadoc" />
          <arg value="-classpath" />
          <arg pathref="USER_CLASS_PATH" />
          <arg value="-sourcepath" />
          <arg pathref="USER_SOURCE_PATH" />
          <arg value="-examplepackages" />
          <arg value="com.google.gwt.examples;com.google.gwt.examples.i18n;com.google.gwt.examples.http.client;com.google.gwt.examples.rpc.server;com.google.gwt.examples.benchmarks" />
          <arg value="-packages" />
          <arg value="${USER_PKGS};${USER_CLASSES}" />
        </java>
      </sequential>
    </outofdate>
  </target>

  <target name="emul-ezt">
    <outofdate>
      <sourcefiles>
        <fileset dir="${gwt.root}/user/super/com/google/gwt/emul">
          <include name="**/*.java" />
        </fileset>
      </sourcefiles>
      <targetfiles>
        <pathelement path="${project.build}/emul-ezt/fragment.html" />
      </targetfiles>
      <sequential>
        <echo>Building JRE emulation EZT</echo>
        <java classpathref="DOC_PATH" classname="com.google.doctool.JreDocTool" fork="yes" failonerror="true">
          <arg value="-out" />
          <arg value="${project.build}/emul-ezt/fragment.html" />
          <arg value="-classpath" />
          <arg pathref="USER_CLASS_PATH" />
          <arg value="-sourcepath" />
          <arg path="${gwt.root}/user/super/com/google/gwt/emul:${gwt.root}/dev/core/super/com/google/gwt/dev/jjs/intrinsic" />
          <arg value="-packages" />
          <arg value="${LANG_PKGS}" />
        </java>
      </sequential>
    </outofdate>
  </target>

  <target name="build" depends="javadoc, emul-ezt" />
</project>
