<project name="benchmark-viewer" default="build" basedir=".">

  <!--
    TODO(tobyr) 

    Once we have more than a single tool, this build should be re-examined
    to see if several of the targets should be lifted into common.ant.xml.
    The simple targets, like tests*, clean, and checkstyle are good
    candidates, while the other targets depend heavily on the actual
    makeup of the future tools.
  -->

  <property name="gwt.root" location="../.." />
  <property name="project.tail" value="tools/benchmark-viewer" />
  <import file="${gwt.root}/common.ant.xml" />

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

  <property name="war" location="${project.build}/war" />

  <path id="project.class.path">
    <pathelement location="war/WEB-INF/classes"/>
    <pathelement location="${gwt.user.jar}"/>
    <pathelement location="${gwt.dev.jar}"/>
    <fileset dir="${war}/WEB-INF/lib" includes="**/*.jar"/>
  </path>

  <target name="wardir" description="Create the target war directory">
    <copy todir="${war}">
      <fileset dir="war" excludes="WEB-INF/classes/marker" />
    </copy>
    <mkdir dir="${war}/WEB-INF/lib" />
    <copy todir="${war}/WEB-INF/lib" file="${gwt.servlet.jar}" />
    <copy todir="${war}/WEB-INF/lib" file="${gwt.tools.lib}/jfreechart/jfreechart-1.0.3.jar" />
    <copy todir="${war}/WEB-INF/lib" file="${gwt.tools.lib}/jfreechart/jcommon-1.0.6.jar" />
  </target>

  <target name="javac" depends="wardir" description="Compile java source">
    <mkdir dir="${war}/WEB-INF/classes"/>
    <gwt.javac destdir="${war}/WEB-INF/classes">
      <classpath refid="project.class.path"/>
    </gwt.javac>
    <copy todir="${war}/WEB-INF/classes">
      <fileset dir="src" excludes="**/*.java"/>
    </copy>
  </target>

  <target name="gwtc" depends="javac" description="GWT compile to JavaScript">
    <outofdate>
      <sourcefiles>
        <fileset dir="src"/>
        <path refid="project.class.path"/>
      </sourcefiles>
      <targetfiles path="${war}/reportViewer/reportViewer.nocache.js" />
      <sequential>
        <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
          <classpath>
            <pathelement location="src"/>
            <path refid="project.class.path"/>
          </classpath>
          <jvmarg value="-Xmx256M"/>
          <arg value="-war"/>
          <arg value="${war}"/>
          <arg value="com.google.gwt.benchmarks.viewer.ReportViewer"/>
        </java>
      </sequential>
    </outofdate>
  </target>

  <target name="war" depends="gwtc" description="Create a war file">
    <zip destfile="${gwt.build.lib}/gwt-benchmark-viewer.war" basedir="${war}"/>
  </target>

  <target name="build" depends="war" description="Build this project" />

  <target name="clean" description="Cleans this project">
    <delete dir="${war}" failonerror="false" />
    <delete file="${gwt.build.lib}/gwt-benchmark-viewer.war" failonerror="false" />
  </target>

  <target name="checkstyle" description="Static analysis of source">
    <gwt.checkstyle>
      <fileset dir="src"/>
    </gwt.checkstyle>
  </target>

  <target name="test" depends="build" />
</project>
