blob: 37ffb3ee57fe0f21b52ce4b9756f9ec3e5f0861c [file] [log] [blame]
<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>