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

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

  <fileset id="default.tests" dir="${javac.junit.out}">
    <include name="**/com/google/**/*Test.class" />
  </fileset>

  <target name="compile.tests" depends="build" description="Compiles the test code for this project">
    <mkdir dir="${javac.junit.out}" />
    <gwt.javac srcdir="test" destdir="${javac.junit.out}">
      <classpath>
        <pathelement location="${javac.out}" />
        <pathelement location="${alldeps.jar}" />
        <pathelement location="${gwt.tools.lib}/junit/junit-3.8.1.jar" />
      </classpath>
    </gwt.javac>
  </target>

  <target name="build.alldeps.jar" description="Merges all dependency jars into a single jar">
    <mkdir dir="${project.build}" />
    <gwt.jar destfile="${alldeps.jar}">
      <zipfileset src="${gwt.tools.lib}/apache/tapestry-util-text-4.0.2.jar" />
      <zipfileset src="${gwt.tools.lib}/apache/ant-1.6.5.jar" />
      <zipfileset src="${gwt.tools.lib}/eclipse/jdt-3.4.2.jar" />
      <zipfileset src="${gwt.tools.lib}/jetty/jetty-6.1.11.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/ant-launcher-1.6.5.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/catalina-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/catalina-optional-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/commons-beanutils-1.6.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/commons-collections-3.1.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/commons-digester-1.5.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/commons-el-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/commons-logging-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/commons-modeler-1.1.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/jakarta-regexp-1.3.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/jasper-compiler-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/jasper-runtime-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/jsp-api-2.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/mx4j-jmx-1.1.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/naming-common-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/naming-factory-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/naming-java-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/naming-resources-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/servlet-api-2.5.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/servlet-api-2.4.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/servlets-common-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/servlets-default-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/servlets-invoker-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/tomcat-coyote-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/tomcat-http11-1.0.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/tomcat-jk2-2.1.jar" />
      <zipfileset src="${gwt.tools.lib}/tomcat/tomcat-util-5.1.jar" />
    </gwt.jar>
  </target>

  <property name="filter.pattern" value="com/google/gwt/dev/About.properties" />

  <target name="-filter.props" description="Creates filtered About.properties with version info"
     unless="filter.uptodate">
    <gwt.revfilter todir="${javac.out}">
      <fileset dir="src" includes="${filter.pattern}" />
    </gwt.revfilter>
    <touch file="${filter.sentinel}" />
  </target>

  <target name="build" depends="build.alldeps.jar" description="Compiles this project">
    <!--
    There are classes missing from dev/core that are necessary
    to compile the rest of dev/core (e.g. BootStrapPlatform); these are
    provided by each platform implementation, but in order to compile the
    core standalone, we need a dummy version of the class to build against.
    -->
    <property name="javac.out-dummy" location="${project.build}/bin-dummy" />
    <mkdir dir="${javac.out-dummy}" />
    <gwt.javac srcdir="src-dummy" destdir="${javac.out-dummy}" />

    <mkdir dir="${javac.out}" />
    <gwt.javac srcdir="super" excludes="com/google/gwt/dev/jjs/intrinsic/"/>
    <gwt.javac srcdir="src" excludes="${filter.pattern}">
      <classpath>
        <pathelement location="${javac.out-dummy}" />
        <pathelement location="${alldeps.jar}" />
        <pathelement location="${gwt.tools.lib}/junit/junit-3.8.1.jar" />
        <!-- Must build against a version of SWT; just pick one -->
        <pathelement location="${gwt.tools.lib}/eclipse/org.eclipse.swt.gtk-linux-3.2.1.jar" />
      </classpath>
    </gwt.javac>
    <copy todir="${javac.out}">
      <fileset dir="src" includes="**/*.properties" excludes="${filter.pattern}"/>
    </copy>

    <!-- Files with hardcoded version information must be filtered -->
    <gwt.getsvninfo />
    <condition property="filter.uptodate">
      <and>
        <available file="${filter.sentinel}" />
        <uptodate>
          <srcfiles dir="src" includes="${filter.pattern}" />
          <globmapper from="*" to="${javac.out}/*" />
        </uptodate>
      </and>
    </condition>
    <antcall target="-filter.props" />
  </target>

  <target name="checkstyle" description="Static analysis of source">
    <gwt.checkstyle>
      <fileset dir="src">
        <filename name="com/google/gwt/dev/asm/**/*.java" negate="yes" />
        <filename name="com/google/gwt/dev/js/rhino/**/*.java" negate="yes" />
        <filename name="org/eclipse/**/*.java" negate="yes" />
        <filename name="org/apache/**/*.java" negate="yes" />
      </fileset>
    </gwt.checkstyle>

    <gwt.checkstyle>
      <fileset dir="super/com/google/gwt/dev/jjs/intrinsic" />
    </gwt.checkstyle>
  </target>

  <target name="test" depends="build, compile.tests" description="Run unit tests for this project.">
    <!-- TODO: refactor gwt.junit so it can be reused here -->
    <taskdef name="junit" classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask">
      <classpath>
        <pathelement location="${gwt.tools.lib}/junit/junit-3.8.1.jar" />
        <pathelement location="${gwt.tools.antlib}/ant-junit-1.6.5.jar" />
      </classpath>
    </taskdef>
  
    <echo message="Writing test results to ${junit.out}/reports for ${test.cases}" />
    <mkdir dir="${junit.out}/reports" />
  
    <echo message="${javac.out} ${javac.junit.out}" />
    <junit dir="${junit.out}" fork="yes" printsummary="yes" haltonfailure="true">
      <classpath>
        <pathelement location="test" />
        <pathelement location="${javac.junit.out}" />
        <pathelement location="${javac.out}" />
        <pathelement location="${alldeps.jar}" />
        <pathelement location="${gwt.tools.lib}/junit/junit-3.8.1.jar" />
        <!-- Pull in gwt-dev and gwt-user sources for .gwt.xml files -->
        <pathelement location="${gwt.root}/user/src/" />
        <pathelement location="${gwt.root}/user/super/" />
        <pathelement location="${gwt.root}/dev/core/super" />
      </classpath>
  
      <formatter type="plain" />
      <formatter type="xml" />
  
      <batchtest todir="${junit.out}/reports">
        <fileset refid="default.tests" />
      </batchtest>
    </junit>
  </target>

  <target name="clean" description="Cleans this project's intermediate and output files">
    <delete dir="${project.build}" />
    <delete file="${project.lib}" />
  </target>
</project>
