blob: 7ca791c5e7fa3ab4325300d06a12b8fe2be5a63b [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">
<mkdir dir="${javac.junit.out}" />
<gwt.javac srcdir="" destdir="${javac.junit.out}">
<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="${gwt.root}/user/src" destdir="${javac.junit.out}"
excludes="**/super/**">
<classpath>
<pathelement location="${javac.out}" />
<pathelement location="${gwt.tools.lib}/junit/junit-4.8.2.jar" />
<pathelement location="${gwt.tools.lib}/jfreechart/jfreechart-1.0.3.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}" />
</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/org.eclipse.jdt.core_3.8.3.v20130121-145325.jar" />
<include name="eclipse/jdtCompilerAdapter-3.8.3.v20130121-145325.jar" />
<include name="guava/guava-16.0.1/guava-16.0.1-rebased.jar" />
<include name="icu4j/50.1.1/icu4j.jar" />
<include name="jetty/jetty-8.1.12.v20130726/jetty-8.1.12.v20130726.jar" />
<include name="jetty/jetty-8.1.12.v20130726/servlet-api-3.0-NoMetaInf.jar" />
<include name="jscomp/20131014/compiler-rebased.jar" />
<include name="jscomp/20131014/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="tomcat/commons-el-1.0.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" />
<!-- dependencies needed for JSP support in DevMode: END -->
<include name="apache/commons/commons-collections-3.2.1.jar" />
<!-- htmlunit dependencies not already included: BEGIN -->
<include name="apache/http/httpclient-4.3.1.jar" />
<include name="apache/http/httpcore-4.3.jar" />
<include name="apache/http/httpmime-4.3.1.jar" />
<include name="apache/james/apache-mime4j-0.6.jar" />
<include name="apache/commons/commons-codec-1.8.jar" />
<include name="apache/commons/commons-io-2.4.jar" />
<include name="apache/commons/commons-lang3-3.1.jar" />
<include name="apache/commons/commons-logging-1.1.3.jar" />
<include name="cssparser/cssparser-0.9.11.jar" />
<include name="htmlunit/htmlunit-2.13/htmlunit-2.13.jar" />
<include name="htmlunit/htmlunit-2.13/htmlunit-core-js-2.13.jar" />
<include name="nekohtml/nekohtml-1.9.19.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="sun/swingworker/swing-worker-1.1.jar" />
</fileset>
<fileset dir="${gwt.tools.redist}">
<include name="json/r2_20080312/json-1.5.jar" />
</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/org.eclipse.jdt.core_3.8.3.v20130121-145325.jar" />
<zipfileset src="${gwt.tools.lib}/eclipse/jdtCompilerAdapter-3.8.3.v20130121-145325.jar" />
<zipfileset src="${gwt.tools.lib}/guava/guava-16.0.1/guava-16.0.1-rebased.jar" />
<zipfileset src="${gwt.tools.lib}/icu4j/50.1.1/icu4j.jar" />
<zipfileset src="${gwt.tools.lib}/jetty/jetty-8.1.12.v20130726/jetty-8.1.12.v20130726.jar" />
<zipfileset src="${gwt.tools.lib}/jetty/jetty-8.1.12.v20130726/servlet-api-3.0-NoMetaInf.jar" />
<zipfileset src="${gwt.tools.lib}/jscomp/20131014/compiler-rebased.jar" />
<zipfileset src="${gwt.tools.lib}/jscomp/20131014/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}/tomcat/commons-el-1.0.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" />
<!-- dependencies needed for JSP support in DevMode: END -->
<zipfileset src="${gwt.tools.lib}/apache/commons/commons-collections-3.2.1.jar" />
<!-- htmlunit dependencies not already included: BEGIN -->
<zipfileset src="${gwt.tools.lib}/apache/http/httpclient-4.3.1.jar" />
<zipfileset src="${gwt.tools.lib}/apache/http/httpcore-4.3.jar" />
<zipfileset src="${gwt.tools.lib}/apache/http/httpmime-4.3.1.jar" />
<zipfileset src="${gwt.tools.lib}/apache/james/apache-mime4j-0.6.jar" />
<zipfileset src="${gwt.tools.lib}/apache/commons/commons-codec-1.8.jar" />
<zipfileset src="${gwt.tools.lib}/apache/commons/commons-io-2.4.jar" />
<zipfileset src="${gwt.tools.lib}/apache/commons/commons-lang3-3.1.jar" />
<zipfileset src="${gwt.tools.lib}/apache/commons/commons-logging-1.1.3.jar" />
<zipfileset src="${gwt.tools.lib}/cssparser/cssparser-0.9.11.jar" />
<zipfileset src="${gwt.tools.lib}/htmlunit/htmlunit-2.13/htmlunit-2.13.jar" />
<zipfileset src="${gwt.tools.lib}/htmlunit/htmlunit-2.13/htmlunit-core-js-2.13.jar" />
<zipfileset src="${gwt.tools.lib}/nekohtml/nekohtml-1.9.19.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}/sun/swingworker/swing-worker-1.1.jar" />
<zipfileset src="${gwt.tools.redist}/json/r2_20080312/json-1.5.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">
<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/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/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-1.6.5.jar" />
<pathelement location="${gwt.tools.lib}/apache/commons/commons-collections-3.2.1.jar" />
<pathelement location="${gwt.tools.lib}/eclipse/org.eclipse.jdt.core_3.8.3.v20130121-145325.jar" />
<pathelement location="${gwt.tools.lib}/eclipse/jdtCompilerAdapter-3.8.3.v20130121-145325.jar" />
<pathelement location="${gwt.tools.lib}/guava/guava-16.0.1/guava-16.0.1-rebased.jar" />
<pathelement location="${gwt.tools.lib}/jscomp/20131014/compiler-rebased.jar" />
<pathelement location="${gwt.tools.lib}/jscomp/20131014/sourcemap-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="" excludes="${filter.pattern}">
<src path="core/src" />
<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" 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/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="core/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.name="dev" test.out="${junit.out}"
test.args="${test.args}"
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/" />
</extraclasspaths>
</gwt.junit>
</target>
<property.ensure name="gwt.tools.soyc" location="${gwt.root}/tools/soyc-vis" />
<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 -->
</fileset>
<fileset dir="core/super" excludes="**/package.html" />
<fileset dir="${javac.out}" />
<fileset dir="${project.build}/bin" />
<fileset file="${project.build}/alldeps.jar" />
<fileset file="${gwt.tools.soyc}/classLevel.css"/>
<fileset file="${gwt.tools.soyc}/roundedCorners.css"/>
</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 -->
</fileset>
<fileset dir="core/super" excludes="**/package.html" />
<fileset dir="${javac.out}" />
<zipfileset src="${alldeps.jar}" />
<zipfileset file="${gwt.tools.soyc}/classLevel.css" prefix="com/google/gwt/soyc/resources/"/>
<zipfileset file="${gwt.tools.soyc}/roundedCorners.css" prefix="com/google/gwt/soyc/resources/"/>
<manifest>
<attribute name="Main-Class" value="com.google.gwt.dev.GWTMain" />
</manifest>
</gwt.jar>
</sequential>
</outofdate>
</target>
</project>