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

  <!-- Remove all output files -->
  <target name="clean" description="Cleans this project's output files">
    <delete file="${gwt.build.lib}/requestfactory-apt.jar" />
    <delete file="${gwt.build.lib}/requestfactory-client.jar" />
    <delete file="${gwt.build.lib}/requestfactory-client-src.jar" />
    <delete file="${gwt.build.lib}/requestfactory-client+src.jar" />
    <delete file="${gwt.build.lib}/requestfactory-server.jar" />
    <delete file="${gwt.build.lib}/requestfactory-server-src.jar" />
    <delete file="${gwt.build.lib}/requestfactory-server+src.jar" />
    <delete file="${gwt.build.lib}/requestfactory-test+src.jar" />
  </target>

  <!-- Build a jar file containing a subset of requestfactory -->
  <macrodef name="requestfactory-jar">
    <!--
         "target" should be one of {client,server,all}[(+|-)src] or test+src.
         -src includes .java files only, +src includes .java and .class files
    -->
    <attribute name="target" default="client"/>
    <sequential>
      <java failonerror="true" fork="true"
            classname="com.google.web.bindery.requestfactory.server.RequestFactoryJarExtractor">
        <classpath>
          <fileset dir="${gwt.build.lib}" includes="gwt-user.jar,gwt-dev.jar" />
          <fileset dir="${gwt.tools.redist}" includes="json/r2_20080312/json-1.5.jar" />
          <pathelement location="${gwt.tools.lib}/junit/junit-4.8.2.jar" />
          <pathelement path="${gwt.build.out}/user/bin" />
          <pathelement path="${gwt.build.out}/dev/bin-test" />
          <pathelement path="${gwt.build.out}/user/bin-test" />
        </classpath>
        <jvmarg value="-ea"/>
        <arg value="@{target}"/>
        <arg file="${gwt.build.lib}/requestfactory-@{target}.jar"/>
      </java>
    </sequential>
  </macrodef>
 
  <!-- Targets for individual jars -->
  <target name="requestfactory-apt" description="Build RequestFactory apt jar">
    <requestfactory-jar target="apt"/>
  </target>

  <target name="requestfactory-client" description="Build RequestFactory client jar">
    <requestfactory-jar target="client"/>
  </target>

  <target name="requestfactory-client-src" description="Build RequestFactory client source jar">
    <requestfactory-jar target="client-src"/>
  </target>

  <target name="requestfactory-client+src" description="Build RequestFactory client source/class jar">
    <requestfactory-jar target="client+src"/>
  </target>

  <target name="requestfactory-server" description="Build RequestFactory server jar">
    <requestfactory-jar target="server"/>
  </target>

  <target name="requestfactory-server-src" description="Build RequestFactory server source jar">
    <requestfactory-jar target="server-src"/>
  </target>

  <target name="requestfactory-server+src" description="Build RequestFactory server source/class jar">
    <requestfactory-jar target="server+src"/>
  </target>

  <!-- This target requires classes from ../build/{dev,user}/bin-test -->
  <target name="requestfactory-test+src" description="Build RequestFactory test source/class jar">
    <requestfactory-jar target="test+src" />
  </target>

  <!-- Build all client jars -->
  <target name="clientjars" depends="requestfactory-apt,requestfactory-client,requestfactory-client-src,requestfactory-client+src" description="Build requestfactory client jars" />

  <!-- Build all server jars -->
  <target name="serverjars" depends="requestfactory-server,requestfactory-server-src,requestfactory-server+src" description="Build requestfactory server jars" />

  <!-- Default target, build client and server jars.
       Assumes the 'user' target has been built in the trunk directory
  -->
  <target name="build" depends="clientjars,serverjars" />

  <!-- Run RequestFactoryJreSuite from the requestfactory-test+src jar.
       Assumes test classes have been built in the trunk directory
  -->
  <target name="test" depends="requestfactory-test+src" description="Run RequestFactoryJreSuite">
    <java failonerror="true" fork="true"
      classname="com.google.web.bindery.requestfactory.vm.RequestFactoryJreSuite">
      <jvmarg value="-Xss8m" />
      <classpath>
        <fileset dir="${gwt.tools.lib}" includes="tomcat/servlet-api-2.5.jar" />
        <fileset dir="${gwt.tools.lib}" includes="apache/log4j/log4j-1.2.16.jar" />
        <fileset dir="${gwt.tools.lib}" includes="slf4j/slf4j-api/slf4j-api-1.6.1.jar" />
        <fileset dir="${gwt.tools.lib}" includes="slf4j/slf4j-log4j12/slf4j-log4j12-1.6.1.jar" />
        <fileset dir="${gwt.tools.lib}" includes="hibernate/validator/hibernate-validator-4.1.0.Final.jar" />
        <fileset dir="${gwt.tools.lib}" includes="javax/validation/validation-api-1.0.0.GA.jar" />
        <fileset dir="${gwt.tools.lib}" includes="javax/xml/bind/jaxb-api-2.1.jar" />
        <fileset dir="${gwt.build.lib}" includes="requestfactory-apt.jar" />
        <fileset dir="${gwt.build.lib}" includes="requestfactory-test+src.jar" />

      </classpath>
    </java>
  </target>

</project>
