<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-9.2/asm-9.2.jar"/>
          <include name="objectweb/asm-9.2/asm-commons-9.2.jar"/>
          <include name="objectweb/asm-9.2/asm-util-9.2.jar"/>
          <include name="guava/guava-19.0/guava-19.0-rebased.jar"/>
          <include name="icu4j/63.1/icu4j.jar"/>
          <include name="jetty/jetty-9.4.44.v20210927/jetty-all-9.4.44.v20210927.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.4.44.v20210927/mortbay-apache-jsp-8.5.70.jar"/>
          <include name="jetty/jetty-9.4.44.v20210927/mortbay-apache-el-8.5.70.jar"/>
          <include name="jetty/jetty-9.4.44.v20210927/jetty-apache-jsp-9.4.44.v20210927.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.13.jar"/>
          <include name="apache/http/httpcore-4.4.13.jar"/>
          <include name="apache/http/httpmime-4.5.13.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="htmlunit/htmlunit-2.55.0/htmlunit-cssparser-1.10.0.jar"/>
          <include name="htmlunit/htmlunit-2.55.0/htmlunit-2.55.0.jar"/>
          <include name="htmlunit/htmlunit-2.55.0/htmlunit-core-js-2.55.0.jar"/>
          <include name="htmlunit/htmlunit-2.55.0/neko-htmlunit-2.55.0.jar"/>
          <include name="htmlunit/htmlunit-2.55.0/salvation2-3.0.0.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"/>
          <include name="brotli/dec-0.1.2.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-9.2/asm-9.2.jar"/>
          <zipfileset src="${gwt.tools.lib}/objectweb/asm-9.2/asm-commons-9.2.jar"/>
          <zipfileset src="${gwt.tools.lib}/objectweb/asm-9.2/asm-util-9.2.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.4.44.v20210927/jetty-all-9.4.44.v20210927.jar">
            <!--
            Don't add jetty auth implementation from jetty-jaspi, as we would also need to package jetty's
            javax.security.auth.message implementation as well as geronimo-jaspi.
             -->
            <exclude name="META-INF/services/org.eclipse.jetty.security.Authenticator$Factory"/>
          </zipfileset>
          <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.4.44.v20210927/mortbay-apache-jsp-8.5.70.jar"/>
          <zipfileset src="${gwt.tools.lib}/jetty/jetty-9.4.44.v20210927/mortbay-apache-el-8.5.70.jar"/>
          <zipfileset src="${gwt.tools.lib}/jetty/jetty-9.4.44.v20210927/jetty-apache-jsp-9.4.44.v20210927.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.13.jar"/>
          <zipfileset src="${gwt.tools.lib}/apache/http/httpcore-4.4.13.jar"/>
          <zipfileset src="${gwt.tools.lib}/apache/http/httpmime-4.5.13.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}/htmlunit/htmlunit-2.55.0/htmlunit-cssparser-1.10.0.jar"/>
          <zipfileset src="${gwt.tools.lib}/htmlunit/htmlunit-2.55.0/htmlunit-2.55.0.jar"/>
          <zipfileset
              src="${gwt.tools.lib}/htmlunit/htmlunit-2.55.0/htmlunit-core-js-2.55.0.jar"/>
          <zipfileset src="${gwt.tools.lib}/htmlunit/htmlunit-2.55.0/neko-htmlunit-2.55.0.jar"/>
          <zipfileset src="${gwt.tools.lib}/htmlunit/htmlunit-2.55.0/salvation2-3.0.0.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"/>
          <zipfileset src="${gwt.tools.lib}/brotli/dec-0.1.2.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-9.2/asm-9.2.jar"/>
        <pathelement location="${gwt.tools.lib}/objectweb/asm-9.2/asm-commons-9.2.jar"/>
        <pathelement location="${gwt.tools.lib}/objectweb/asm-9.2/asm-util-9.2.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>

