<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" />
  <property name="gwt.junit.testcase.dev.core.includes" value="**/com/google/**/*Test.class" />
  <property name="gwt.junit.testcase.dev.core.excludes" value="" />

  <target name="compile.tests" depends="build, compile.emma" 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}" />
    <outofdate> <!-- saves rescanning all the source jars' contents -->
      <sourcefiles>
        <fileset dir="${gwt.tools.lib}">
          <include name="apache/tapestry-util-text-4.0.2.jar" />
          <include name="apache/ant-1.6.5.jar" />
          <include name="eclipse/jdt-3.4.2.jar" />
          <include name="jetty/jetty-6.1.11.jar" />
          <include name="tomcat/ant-launcher-1.6.5.jar" />
          <include name="tomcat/catalina-1.0.jar" />
          <include name="tomcat/catalina-optional-1.0.jar" />
          <include name="tomcat/commons-beanutils-1.6.jar" />
          <include name="tomcat/commons-collections-3.1.jar" />
          <include name="tomcat/commons-digester-1.5.jar" />
          <include name="tomcat/commons-el-1.0.jar" />
          <include name="tomcat/commons-logging-1.0.jar" />
          <include name="tomcat/commons-modeler-1.1.jar" />
          <include name="tomcat/jakarta-regexp-1.3.jar" />
          <include name="tomcat/jasper-compiler-1.0.jar" />
          <include name="tomcat/jasper-runtime-1.0.jar" />
          <include name="tomcat/jsp-api-2.0.jar" />
          <include name="tomcat/mx4j-jmx-1.1.jar" />
          <include name="tomcat/naming-common-1.0.jar" />
          <include name="tomcat/naming-factory-1.0.jar" />
          <include name="tomcat/naming-java-1.0.jar" />
          <include name="tomcat/naming-resources-1.0.jar" />
          <include name="tomcat/servlet-api-2.5.jar" />
          <include name="tomcat/servlet-api-2.4.jar" />
          <include name="tomcat/servlets-common-1.0.jar" />
          <include name="tomcat/servlets-default-1.0.jar" />
          <include name="tomcat/servlets-invoker-1.0.jar" />
          <include name="tomcat/tomcat-coyote-1.0.jar" />
          <include name="tomcat/tomcat-http11-1.0.jar" />
          <include name="tomcat/tomcat-jk2-2.1.jar" />
          <include name="tomcat/tomcat-util-5.1.jar" />
          <!-- htmlunit dependencies not already included: BEGIN -->
          <include name="apache/commons/commons-codec-1.3.jar" />
          <include name="apache/commons/commons-httpclient-3.1.jar" />
          <include name="apache/commons/commons-io-1.4.jar" />
          <include name="apache/commons/commons-lang-2.4.jar" />
          <include name="cssparser/cssparser-0.9.5.jar" />
          <include name="htmlunit/htmlunit-2.5.jar" />
          <include name="htmlunit/htmlunit-core-js-2.5.jar" />
          <include name="nekohtml/nekohtml-1.9.12.jar" />
          <include name="xalan/xalan-2.7.1.jar" />
          <include name="xerces/xerces-2_9_1/serializer.jar" />
          <include name="xerces/xerces-2_9_1/xercesImpl.jar" />
          <include name="xerces/xerces-2_9_1/xml-apis.jar" />
          <include name="w3c/sac/sac-1.3.jar" />
          <!-- htmlunit dependencies not already included: END -->
        </fileset>
        <fileset file="build.xml"/>
      </sourcefiles>
      <targetfiles>
        <fileset file="${alldeps.jar}"/>
      </targetfiles>
      <sequential>
        <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" />
          <!-- htmlunit dependencies not already included: BEGIN -->
          <zipfileset src="${gwt.tools.lib}/apache/commons/commons-codec-1.3.jar" />
          <zipfileset src="${gwt.tools.lib}/apache/commons/commons-httpclient-3.1.jar" />
          <zipfileset src="${gwt.tools.lib}/apache/commons/commons-io-1.4.jar" />
          <zipfileset src="${gwt.tools.lib}/apache/commons/commons-lang-2.4.jar" />
          <zipfileset src="${gwt.tools.lib}/cssparser/cssparser-0.9.5.jar" />
          <zipfileset src="${gwt.tools.lib}/htmlunit/htmlunit-2.5.jar" />
          <zipfileset src="${gwt.tools.lib}/htmlunit/htmlunit-core-js-2.5.jar" />
          <zipfileset src="${gwt.tools.lib}/nekohtml/nekohtml-1.9.12.jar" />
          <zipfileset src="${gwt.tools.lib}/xalan/xalan-2.7.1.jar" />
          <zipfileset src="${gwt.tools.lib}/xerces/xerces-2_9_1/serializer.jar" />
          <zipfileset src="${gwt.tools.lib}/xerces/xerces-2_9_1/xercesImpl.jar" />
          <zipfileset src="${gwt.tools.lib}/xerces/xerces-2_9_1/xml-apis.jar" />
          <zipfileset src="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
          <!-- htmlunit dependencies not already included: END -->
        </gwt.jar>
      </sequential>
    </outofdate>
  </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="compiler.standalone" description="Validates that the standalone gwt-compiler project can build.">
    <mkdir dir="${javac.out}" />
    <gwt.javac srcdir="super" excludes="com/google/gwt/dev/jjs/intrinsic/"/>
    <gwt.javac srcdir="src">
      <include name="com/google/gwt/core/ext/**"/>
      <include name="com/google/gwt/core/linker/**"/>
      <include name="com/google/gwt/dev/About.java"/>
      <include name="com/google/gwt/dev/asm/**"/>
      <include name="com/google/gwt/dev/cfg/**"/>
      <include name="com/google/gwt/dev/javac/**"/>
      <include name="com/google/gwt/dev/jdt/**"/>
      <include name="com/google/gwt/dev/jjs/**"/>
      <include name="com/google/gwt/dev/js/**"/>
      <include name="com/google/gwt/dev/resource/**"/>
      <include name="com/google/gwt/dev/util/**"/>
      <include name="com/google/gwt/util/tools/**"/>
      <classpath>
          <pathelement location="${gwt.tools.lib}/apache/ant-1.6.5.jar" />
          <pathelement location="${gwt.tools.lib}/eclipse/jdt-3.4.2.jar" />
          <pathelement location="${gwt.tools.lib}/tomcat/commons-collections-3.1.jar" />
          <pathelement location="${gwt.tools.lib}/junit/junit-3.8.1.jar" />
      </classpath>
    </gwt.javac>

  </target>
  
  <target name="build" depends="compiler.standalone, 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}" />

    <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.">
    <fileset id="tests.dev.core" dir="${javac.junit.out}" includes="${gwt.junit.testcase.dev.core.includes}" excludes="${gwt.junit.testcase.dev.core.excludes}" />
    <gwt.junit test.out="${junit.out}" test.cases="tests.dev.core" >
      <extraclasspaths>
        <pathelement location="${alldeps.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/" />
      </extraclasspaths>
    </gwt.junit>
  </target>

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