<project name="dev" default="build" basedir=".">
  <property name="gwt.root" location=".."/>
  <property name="project.tail" value="dev"/>
  <property name="test.args" value="-ea"/>
  <property name="test.jvmargs" value="-ea"/>
  <import file="${gwt.root}/platforms.ant.xml"/>
  <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"/>
  <!-- BrowserManagerTest is brought in from user and is not instantiable. -->
  <property name="gwt.junit.testcase.dev.core.excludes"
            value="**/BrowserManagerTest.class"/>

  <target name="clean" description="Cleans this project's intermediate and output files">
    <delete dir="${project.build}" failonerror="false"/>
    <delete file="${project.lib}" failonerror="false"/>
    <delete failonerror="false">
      <fileset dir="${gwt.build.lib}" includes="gwt-dev.jar"/>
    </delete>
  </target>

  <target name="compile.tests" depends="build, compile.emma.if.enabled, build.alldeps.jar"
          description="Compiles the test code for this project">
    <gwt.javac srcdir="" destdir="${javac.junit.out}" errorprone.args="
                                                         -Xep:MissingCasesInEnumSwitch:OFF
                                                         -Xep:FallThrough:OFF
                                                         -Xep:ReturnValueIgnored:OFF
                                                         -Xep:EqualsIncompatibleType:OFF
                                                         -Xep:SelfComparison:OFF
                                                         -Xep:SelfEquals:OFF
                                                         -Xep:ComparableType:OFF
                                                       ">
        <src path="core/src"/>
        <src path="core/test"/>
      <classpath>
        <pathelement location="${javac.out}"/>
        <pathelement location="${alldeps.jar}"/>
        <pathelement location="${gwt.tools.lib}/junit/junit-4.8.2.jar"/>
      </classpath>
    </gwt.javac>
    <gwt.javac srcdir="" destdir="${javac.junit.out}"
               excludes="**/EmulatedCharset.java,**/HashCodes.java,**/ConsoleLogger.java,**/NativeRegExp.java,**/SuperDevModeLogger.java"
               errorprone.args="
                 -Xep:MissingCasesInEnumSwitch:OFF
                 -Xep:FallThrough:OFF
                 -Xep:ReturnValueIgnored:OFF
                 -Xep:EqualsIncompatibleType:OFF
               ">
      <src path="${gwt.root}/user/src" />
      <src path="${gwt.root}/user/super/com/google/gwt/emul/javaemul/internal"/>
      <classpath>
        <pathelement location="${javac.out}"/>
        <pathelement location="${gwt.tools.lib}/gss/2015-11-04/closure-stylesheets-library-20151104-rebased.jar"/>
        <pathelement location="${gwt.tools.lib}/junit/junit-4.8.2.jar"/>
        <pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar"/>
        <pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar"/>
        <pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg2.jar"/>
        <pathelement
            location="${gwt.tools.lib}/hibernate/validator/hibernate-validator-4.1.0.Final.jar"/>
        <pathelement
            location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA.jar"/>
        <pathelement
            location="${gwt.tools.lib}/streamhtmlparser/streamhtmlparser-jsilver-r10/streamhtmlparser-jsilver-r10-1.5-rebased.jar"/>
        <pathelement location="${gwt.build.lib}/gwt-dev-${build.host.platform}.jar"/>
        <pathelement location="${alldeps.jar}"/>
        <pathelement location="${gwt.tools.lib}/jsinterop/jsinterop-annotations-2.0.0.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-zipscanner/ant-zipscanner-1.6.5-1-rebased.jar"/>
          <include name="colt/colt-1.2.jar"/>
          <include name="eclipse/org.eclipse.jdt.core_3.17.0.v20190306-2240.jar"/>
          <include name="eclipse/jdtCompilerAdapter_3.17.0.v20190306-2240.jar"/>
          <include name="objectweb/asm-7.1/asm-7.1.jar"/>
          <include name="objectweb/asm-7.1/asm-commons-7.1.jar"/>
          <include name="objectweb/asm-7.1/asm-util-7.1.jar"/>
          <include name="guava/guava-19.0/guava-19.0-rebased.jar"/>
          <include name="icu4j/63.1/icu4j.jar"/>
          <include name="jetty/jetty-9.2.14.v20151106/jetty-all-9.2.14.v20151106.jar"/>
          <include name="gson/gson-2.6.2.jar"/>
          <include name="jscomp/20160315/sourcemap-rebased.jar"/>
          <include name="jsr305/jsr305.jar"/>
          <include name="protobuf/protobuf-2.5.0/protobuf-java-rebased-2.5.0.jar"/>
          <!-- dependencies needed for JSP support in DevMode: BEGIN -->
          <include name="jetty/jetty-9.2.14.v20151106/mortbay-apache-jsp-8.0.9.M3.jar"/>
          <include name="jetty/jetty-9.2.14.v20151106/mortbay-apache-el-8.0.9.M3.jar"/>
          <include name="jetty/jetty-9.2.14.v20151106/jetty-apache-jsp-9.2.14.v20151106.jar"/>
          <!-- dependencies needed for JSP support in DevMode: END -->
          <include name="tomcat/tomcat-servlet-api-8.0.28.jar"/>
          <include name="tomcat/tomcat-websocket-api-8.0.28.jar"/>
          <include name="tomcat/tomcat-annotations-api-8.0.28.jar"/>
          <include name="apache/commons/commons-collections-3.2.2.jar"/>
          <!-- htmlunit dependencies not already included: BEGIN -->
          <include name="apache/http/httpclient-4.5.1.jar"/>
          <include name="apache/http/httpcore-4.4.4.jar"/>
          <include name="apache/http/httpmime-4.5.1.jar"/>
          <include name="apache/james/apache-mime4j-0.6.jar"/>
          <include name="apache/commons/commons-codec-1.10.jar"/>
          <include name="apache/commons/commons-io-2.4.jar"/>
          <include name="apache/commons/commons-lang3-3.4.jar"/>
          <include name="apache/commons/commons-logging-1.2.jar"/>
          <include name="cssparser/cssparser-0.9.18.jar"/>
         <include name="htmlunit/htmlunit-2.19/htmlunit-2.19.jar"/>
         <include name="htmlunit/htmlunit-2.19/htmlunit-core-js-2.15.jar"/>
          <include name="nekohtml/nekohtml-1.9.22.jar"/>
          <include name="cup/java-cup-11a.jar"/>
          <include name="xalan/xalan-2.7.1-nocup.jar"/>
          <include name="xerces/xerces-2_11_0/serializer-2.7.1.jar"/>
          <include name="xerces/xerces-2_11_0/xercesImpl-2.11.0.jar"/>
          <include name="xerces/xerces-2_11_0/xml-apis-1.4.01.jar"/>
          <include name="w3c/sac/sac-1.3.jar"/>
          <!-- htmlunit dependencies not already included: END -->
          <include name="json/android-sdk-19.1/json-android-rebased.jar"/>
        </fileset>
        <fileset file="build.xml"/>
      </sourcefiles>
      <targetfiles>
        <fileset file="${alldeps.jar}"/>
      </targetfiles>
      <sequential>
        <gwt.jar destfile="${alldeps.jar}" duplicate="preserve">
          <service type="javax.servlet.ServletContainerInitializer">
            <provider classname="org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer"/>
            <provider classname="org.eclipse.jetty.apache.jsp.JettyJasperInitializer"/>
          </service>
          <zipfileset src="${gwt.tools.lib}/objectweb/asm-7.1/asm-7.1.jar"/>
          <zipfileset src="${gwt.tools.lib}/objectweb/asm-7.1/asm-commons-7.1.jar"/>
          <zipfileset src="${gwt.tools.lib}/objectweb/asm-7.1/asm-util-7.1.jar"/>
          <zipfileset src="${gwt.tools.lib}/apache/tapestry-util-text-4.0.2.jar"/>
          <zipfileset src="${gwt.tools.lib}/apache/ant-zipscanner/ant-zipscanner-1.6.5-1-rebased.jar"/>
          <zipfileset src="${gwt.tools.lib}/colt/colt-1.2.jar"/>
          <zipfileset
              src="${gwt.tools.lib}/eclipse/org.eclipse.jdt.core_3.17.0.v20190306-2240.jar"/>
          <zipfileset
              src="${gwt.tools.lib}/eclipse/jdtCompilerAdapter_3.17.0.v20190306-2240.jar"/>
          <zipfileset src="${gwt.tools.lib}/guava/guava-19.0/guava-19.0-rebased.jar"/>
          <zipfileset src="${gwt.tools.lib}/icu4j/63.1/icu4j.jar"/>
          <zipfileset
              src="${gwt.tools.lib}/jetty/jetty-9.2.14.v20151106/jetty-all-9.2.14.v20151106.jar"/>
          <zipfileset src="${gwt.tools.lib}/gson/gson-2.6.2.jar"/>
          <zipfileset src="${gwt.tools.lib}/jscomp/20160315/sourcemap-rebased.jar"/>
          <zipfileset src="${gwt.tools.lib}/jsr305/jsr305.jar"/>
          <zipfileset
              src="${gwt.tools.lib}/protobuf/protobuf-2.5.0/protobuf-java-rebased-2.5.0.jar"/>
          <!-- dependencies needed for JSP support in DevMode: BEGIN -->
          <zipfileset src="${gwt.tools.lib}/jetty/jetty-9.2.14.v20151106/mortbay-apache-jsp-8.0.9.M3.jar"/>
          <zipfileset src="${gwt.tools.lib}/jetty/jetty-9.2.14.v20151106/mortbay-apache-el-8.0.9.M3.jar"/>
          <zipfileset src="${gwt.tools.lib}/jetty/jetty-9.2.14.v20151106/jetty-apache-jsp-9.2.14.v20151106.jar"/>
          <!-- dependencies needed for JSP support in DevMode: END -->
          <zipfileset src="${gwt.tools.lib}/tomcat/tomcat-servlet-api-8.0.28.jar"/>
          <zipfileset src="${gwt.tools.lib}/tomcat/tomcat-websocket-api-8.0.28.jar"/>
          <zipfileset src="${gwt.tools.lib}/tomcat/tomcat-annotations-api-8.0.28.jar"/>
          <zipfileset
              src="${gwt.tools.lib}/apache/commons/commons-collections-3.2.2.jar"/>
          <!-- htmlunit dependencies not already included: BEGIN -->
          <zipfileset src="${gwt.tools.lib}/apache/http/httpclient-4.5.1.jar"/>
          <zipfileset src="${gwt.tools.lib}/apache/http/httpcore-4.4.4.jar"/>
          <zipfileset src="${gwt.tools.lib}/apache/http/httpmime-4.5.1.jar"/>
          <zipfileset src="${gwt.tools.lib}/apache/james/apache-mime4j-0.6.jar"/>
          <zipfileset src="${gwt.tools.lib}/apache/commons/commons-codec-1.10.jar"/>
          <zipfileset src="${gwt.tools.lib}/apache/commons/commons-io-2.4.jar"/>
          <zipfileset src="${gwt.tools.lib}/apache/commons/commons-lang3-3.4.jar"/>
          <zipfileset src="${gwt.tools.lib}/apache/commons/commons-logging-1.2.jar"/>
          <zipfileset src="${gwt.tools.lib}/cssparser/cssparser-0.9.18.jar"/>
          <zipfileset src="${gwt.tools.lib}/htmlunit/htmlunit-2.19/htmlunit-2.19.jar"/>
          <zipfileset
              src="${gwt.tools.lib}/htmlunit/htmlunit-2.19/htmlunit-core-js-2.15.jar"/>
          <zipfileset src="${gwt.tools.lib}/nekohtml/nekohtml-1.9.22.jar"/>
          <zipfileset src="${gwt.tools.lib}/cup/java-cup-11a.jar"/>
          <zipfileset src="${gwt.tools.lib}/xalan/xalan-2.7.1-nocup.jar"/>
          <zipfileset src="${gwt.tools.lib}/xerces/xerces-2_11_0/serializer-2.7.1.jar"/>
          <zipfileset src="${gwt.tools.lib}/xerces/xerces-2_11_0/xercesImpl-2.11.0.jar"/>
          <zipfileset src="${gwt.tools.lib}/xerces/xerces-2_11_0/xml-apis-1.4.01.jar"/>
          <zipfileset src="${gwt.tools.lib}/w3c/sac/sac-1.3.jar"/>
          <!-- htmlunit dependencies not already included: END -->
          <zipfileset src="${gwt.tools.lib}/json/android-sdk-19.1/json-android-rebased.jar"/>
        </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="core/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="core/super" excludes="com/google/gwt/dev/jjs/intrinsic/"/>
    <gwt.javac srcdir="core/src" errorprone.args="
                                    -Xep:MissingCasesInEnumSwitch:OFF
                                    -Xep:FallThrough:OFF
                                    -Xep:ReturnValueIgnored:OFF
                                    -Xep:EqualsIncompatibleType:OFF
                                  ">
      <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/GwtVersion.java"/>
      <include name="com/google/gwt/dev/Permutation.java"/>
      <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/json/**"/>
      <include name="com/google/gwt/dev/resource/**"/>
      <include name="com/google/gwt/dev/util/**"/>
      <include name="com/google/gwt/soyc/**"/>
      <include name="com/google/gwt/util/**"/>
      <include name="org/eclipse/jdt/**"/>
      <classpath>
        <pathelement location="${gwt.tools.lib}/apache/ant-zipscanner/ant-zipscanner-1.6.5-1-rebased.jar"/>
        <pathelement location="${gwt.tools.lib}/colt/colt-1.2.jar"/>
        <pathelement location="${gwt.tools.lib}/objectweb/asm-7.1/asm-7.1.jar"/>
        <pathelement location="${gwt.tools.lib}/objectweb/asm-7.1/asm-commons-7.1.jar"/>
        <pathelement location="${gwt.tools.lib}/objectweb/asm-7.1/asm-util-7.1.jar"/>
        <pathelement
            location="${gwt.tools.lib}/apache/commons/commons-collections-3.2.2.jar"/>
        <pathelement
            location="${gwt.tools.lib}/eclipse/org.eclipse.jdt.core_3.17.0.v20190306-2240.jar"/>
        <pathelement
            location="${gwt.tools.lib}/eclipse/jdtCompilerAdapter_3.17.0.v20190306-2240.jar"/>
        <pathelement
            location="${gwt.tools.lib}/guava/guava-19.0/guava-19.0-rebased.jar"/>
        <pathelement location="${gwt.tools.lib}/gson/gson-2.6.2.jar"/>
        <pathelement location="${gwt.tools.lib}/jscomp/20160315/sourcemap-rebased.jar"/>
        <pathelement location="${gwt.tools.lib}/json/android-sdk-19.1/json-android-rebased.jar"/>
        <pathelement location="${gwt.tools.lib}/jsr305/jsr305.jar"/>
        <pathelement
            location="${gwt.tools.lib}/protobuf/protobuf-2.5.0/protobuf-java-rebased-2.5.0.jar"/>
      </classpath>
    </gwt.javac>
  </target>

  <target name="compile" depends="compiler.standalone, build.alldeps.jar"
          description="Compiles this project">
    <gwt.javac srcdir="core/src" excludes="${filter.pattern}" errorprone.args="
                                                                 -Xep:MissingCasesInEnumSwitch:OFF
                                                                 -Xep:FallThrough:OFF
                                                                 -Xep:ReturnValueIgnored:OFF
                                                                 -Xep:EqualsIncompatibleType:OFF
                                                               ">
      <classpath>
        <pathelement location="${alldeps.jar}"/>
      </classpath>
    </gwt.javac>
    <copy todir="${javac.out}">
      <fileset dir="core/src" includes="**/*.properties" excludes="${filter.pattern}"/>
    </copy>

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

  <target name="generate.remotemessageproto.java">
    <!-- Generate the java code -->
    <exec executable="protoc" failonerror="true">
      <arg value="--java_out=core/src"/>
      <arg value="./core/src/com/google/gwt/dev/shell/remoteui/remotemessage.proto"/>
    </exec>

    <!-- Rebase the java code to match the rebased protobuf library -->
    <replace file="./core/src/com/google/gwt/dev/shell/remoteui/RemoteMessageProto.java">
      <replacefilter token="com.google.protobuf" value="com.google.gwt.dev.protobuf"/>
    </replace>
  </target>

  <target name="checkstyle-source" description="Static analysis of source">
    <gwt.checkstyle>
      <fileset dir="core/src">
        <filename name="com/google/gwt/dev/shell/remoteui/RemoteMessageProto.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>
      <fileset dir="core/super"/>
    </gwt.checkstyle>
  </target>

  <target name="checkstyle-tests" description="Static analysis of tests">
    <gwt.checkstyle.tests>
      <fileset dir="core/test">
        <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.tests>
  </target>

  <target name="checkstyle" description="Static analysis of source"
          depends="checkstyle-tests,checkstyle-source">
  </target>

  <target name="test" depends="build, compile.tests"
          unless="test.dev.disable"
          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.name="dev" test.out="${junit.out}"
               test.args="${test.args} -devMode"
               test.jvmargs="${test.jvmargs}"
               test.cases="tests.dev.core">
      <extraclasspaths>
        <pathelement location="${alldeps.jar}"/>
        <!-- TODO: the following six items are needed because dev (alone) does
            not adhere to the .../{src,super,test} convention, having a split
            between core and (historically) oophm and the OS platforms.  When
            that unifies, these should go away. -->
        <pathelement location="${gwt.root}/${project.tail}/core/src"/>
        <pathelement location="${gwt.root}/${project.tail}/core/super"/>
        <pathelement location="${gwt.root}/${project.tail}/core/test"/>
        <!-- Pull in gwt-dev and gwt-user sources for .gwt.xml files -->
        <pathelement location="${gwt.root}/user/src/"/>
        <pathelement location="${gwt.root}/user/super/"/>
        <!-- CompilerTest compiles the hello sample. -->
        <pathelement location="${gwt.root}/samples/hello/src/"/>
        <!-- CompilerTest needs the dependecies to compile a project that uses UiBinder. -->
	<pathelement location="${gwt.tools.lib}/streamhtmlparser/streamhtmlparser-jsilver-r10/streamhtmlparser-jsilver-r10-1.5-rebased.jar"/>
        <pathelement location="${gwt.tools.lib}/gss/2015-11-04/closure-stylesheets-library-20151104-rebased.jar"/>
       <pathelement  location="${gwt.tools.lib}/jsinterop/jsinterop-annotations-2.0.0.jar"/>
      </extraclasspaths>
    </gwt.junit>
  </target>

  <target name="build" depends="compile" description="Build and package this project">
    <mkdir dir="${gwt.build.lib}"/>
    <outofdate>
      <sourcefiles>
        <fileset dir="core/src">
          <exclude name="**/package.html"/>
          <exclude name="**/*.properties"/> <!-- copied and/or filtered into bin -->
          <exclude name="org/apache/COPYING"/> <!-- already in alldeps.jar -->
        </fileset>
        <fileset dir="core/super" excludes="**/package.html"/>
        <fileset dir="${javac.out}"/>
        <fileset dir="${project.build}/bin"/>
        <fileset file="${project.build}/alldeps.jar"/>
      </sourcefiles>
      <targetfiles>
        <fileset file="${project.lib}"/>
      </targetfiles>
      <sequential>
        <gwt.jar>
          <fileset dir="core/src">
            <exclude name="**/package.html"/>
            <exclude name="**/*.properties"/> <!-- copied and/or filtered into bin -->
            <exclude name="org/apache/COPYING"/> <!-- already in alldeps.jar -->
          </fileset>
          <fileset dir="core/super" excludes="**/package.html"/>
          <fileset dir="${javac.out}"/>
          <zipfileset src="${alldeps.jar}"/>

          <manifest>
            <attribute name="Main-Class" value="com.google.gwt.dev.GWTMain"/>
          </manifest>
        </gwt.jar>
      </sequential>
    </outofdate>
  </target>
</project>

