blob: 22dd94bf406f47cbb174028bd0a3802d1a74432f [file] [log] [blame]
fabbott@google.com71e72af2009-06-13 02:28:21 +00001<project name="GWT" default="dist" basedir=".">
fabbott@google.com0e2dc6282008-08-22 16:09:01 +00002 <property name="gwt.root" location="." />
3 <property name="project.tail" value="" />
4 <import file="${gwt.root}/common.ant.xml" />
gwt.team.scottb14c5b9d2006-12-10 06:06:08 +00005
fabbott@google.com0e2dc6282008-08-22 16:09:01 +00006 <!-- "build" is the default when subprojects are directly targetted -->
7 <property name="target" value="build" />
jlabanca@google.com81244562009-08-05 19:55:36 +00008 <property name="emma.merged.out" value="${project.build}/emma-coverage" />
gwt.team.scottb14c5b9d2006-12-10 06:06:08 +00009
fabbott@google.com71e72af2009-06-13 02:28:21 +000010 <!--
fabbott@google.com3d7fbc22009-06-18 05:07:26 +000011 Convenience for the lateral calls we make. Use gwt.ant to
12 descend into another directory, and this to call in the same build.xml.
13 NOTE THE USE OF $TARGET, here and in common's gwt.ant. This has the
14 effect of dividing rules into subdirectory rules (using gwt.ant and
15 sensitive to $target) and action rules (using call-subproject and
16 setting $target)... but it is Bad for a subdirectory rule to depend
17 on another one, as they are both sensitive to $target, but you probably
18 mean that subdirB needed subdirA to be _built_, not $target'ed (tested,
19 etc.)
20
21 In other words, DO NOT USE DEPENDS=... IN A TARGET WITH GWT.ANT.
fabbott@google.com71e72af2009-06-13 02:28:21 +000022 -->
23 <macrodef name="call-subproject">
24 <attribute name="subproject" />
25 <attribute name="subtarget" />
26 <sequential>
27 <antcall target="@{subproject}">
28 <param name="target" value="@{subtarget}" />
29 </antcall>
30 </sequential>
31 </macrodef>
32
fabbott@google.com0e2dc6282008-08-22 16:09:01 +000033 <property name="gwt.apicheck.config"
jlabanca@google.com0e4aa7d2011-05-24 11:12:44 +000034 location="tools/api-checker/config/gwt23_24userApi.conf"/>
fabbott@google.com831b44c2008-04-28 15:22:02 +000035
fabbott@google.com3d7fbc22009-06-18 05:07:26 +000036 <target name="buildonly"
37 description="[action] Minimal one-platform devel build, without distro packaging">
jat@google.com0b1619e2009-09-20 19:33:31 +000038 <call-subproject subproject="dev" subtarget="build" />
fabbott@google.com3d7fbc22009-06-18 05:07:26 +000039 <call-subproject subproject="user" subtarget="build" />
rice@google.comdbff9c52011-04-05 17:47:39 +000040 <call-subproject subproject="requestfactory" subtarget="build" />
fabbott@google.com3d7fbc22009-06-18 05:07:26 +000041 <call-subproject subproject="servlet" subtarget="build" />
jat@google.com64a55cb2009-10-16 14:16:57 +000042 <call-subproject subproject="jni" subtarget="build" />
fabbott@google.com71e72af2009-06-13 02:28:21 +000043 </target>
44
fabbott@google.com3d7fbc22009-06-18 05:07:26 +000045 <target name="dist" depends="build, doc" description="[action] Make all the distributions">
jat@google.com04912f22008-11-26 00:21:22 +000046 <gwt.ant dir="distro-source" />
47 </target>
48
fabbott@google.com3d7fbc22009-06-18 05:07:26 +000049 <target name="dist-dev" depends="buildonly" description="[action] Make this platform's distribution, minus doc and samples">
jat@google.com0b1619e2009-09-20 19:33:31 +000050 <gwt.ant dir="distro-source" target="build" />
fabbott@google.com71e72af2009-06-13 02:28:21 +000051 </target>
52
fabbott@google.com3d7fbc22009-06-18 05:07:26 +000053 <target name="dev" description="[subdir] Builds (or runs ${target} if set) all the dev libraries">
54 <call-subproject subproject="buildtools" subtarget="build" />
fabbott@google.com0e2dc6282008-08-22 16:09:01 +000055 <gwt.ant dir="dev" />
56 </target>
gwt.team.scottb14c5b9d2006-12-10 06:06:08 +000057
fabbott@google.com3d7fbc22009-06-18 05:07:26 +000058 <target name="user" description="[subdir] Builds (or runs ${target} if set) only the user library">
jat@google.com0b1619e2009-09-20 19:33:31 +000059 <call-subproject subproject="dev" subtarget="build"/>
fabbott@google.com0e2dc6282008-08-22 16:09:01 +000060 <gwt.ant dir="user" />
61 </target>
gwt.team.scottb14c5b9d2006-12-10 06:06:08 +000062
amitmanjhi@google.com674ee0b2010-04-02 22:29:40 +000063 <target name="soyc" description="[subdir] Builds (or runs ${target} if set) only the soyc library">
64 <call-subproject subproject="dev" subtarget="build"/>
65 <call-subproject subproject="user" subtarget="build"/>
66 <gwt.ant dir="tools/soyc-vis" />
67 </target>
68
fabbott@google.com3d7fbc22009-06-18 05:07:26 +000069 <target name="tools" description="[subdir] Builds (or runs ${target} if set) only the tools">
70 <call-subproject subproject="user" subtarget="build"/>
fabbott@google.com0e2dc6282008-08-22 16:09:01 +000071 <gwt.ant dir="tools" />
72 </target>
gwt.team.mmendez4449b342007-04-10 19:41:44 +000073
rice@google.comdbff9c52011-04-05 17:47:39 +000074 <target name="requestfactory" description="[subdir] Builds (or runs ${target} if set) only the requestfactory jars">
75 <call-subproject subproject="user" subtarget="build" />
76 <gwt.ant dir="requestfactory" />
77 </target>
78
fabbott@google.com3d7fbc22009-06-18 05:07:26 +000079 <target name="servlet" description="[subdir] Builds (or runs ${target} if set) only the servlet jar">
80 <call-subproject subproject="user" subtarget="build" />
fabbott@google.com0e2dc6282008-08-22 16:09:01 +000081 <gwt.ant dir="servlet" />
82 </target>
gwt.team.scottb14c5b9d2006-12-10 06:06:08 +000083
jat@google.com64a55cb2009-10-16 14:16:57 +000084 <target name="jni" description="[subdir] Builds (or runs ${target} if set) jni for all platforms">
85 <gwt.ant dir="jni" />
86 </target>
87
fabbott@google.com3d7fbc22009-06-18 05:07:26 +000088 <target name="doc" description="[subdir] Builds (or runs ${target} if set) the doc">
89 <call-subproject subproject="user" subtarget="build" />
fabbott@google.com0e2dc6282008-08-22 16:09:01 +000090 <gwt.ant dir="doc" />
91 </target>
gwt.team.scottb14c5b9d2006-12-10 06:06:08 +000092
fabbott@google.com3d7fbc22009-06-18 05:07:26 +000093 <target name="samples" description="[subdir] Builds (or runs ${target} if set) the samples">
94 <call-subproject subproject="user" subtarget="build" />
fabbott@google.com0e2dc6282008-08-22 16:09:01 +000095 <gwt.ant dir="samples" />
96 </target>
gwt.team.scottb14c5b9d2006-12-10 06:06:08 +000097
fabbott@google.com3d7fbc22009-06-18 05:07:26 +000098 <target name="buildtools" description="[subdir] Build (or runs ${target} if set) the build tools">
fabbott@google.com0e2dc6282008-08-22 16:09:01 +000099 <gwt.ant dir="build-tools" />
100 </target>
gwt.team.scottb14c5b9d2006-12-10 06:06:08 +0000101
fabbott@google.com3d7fbc22009-06-18 05:07:26 +0000102 <target name="build" description="[action] Builds GWT, including samples, but without distro packaging">
rice@google.comdbff9c52011-04-05 17:47:39 +0000103 <call-subproject subproject="dev" subtarget="build"/>
104 <call-subproject subproject="user" subtarget="build"/>
105 <call-subproject subproject="requestfactory" subtarget="build"/>
106 <call-subproject subproject="servlet" subtarget="build"/>
107 <call-subproject subproject="tools" subtarget="build"/>
108 <call-subproject subproject="jni" subtarget="build"/>
109 <call-subproject subproject="samples" subtarget="build"/>
fabbott@google.com0e2dc6282008-08-22 16:09:01 +0000110 </target>
gwt.team.scottb14c5b9d2006-12-10 06:06:08 +0000111
fabbott@google.com3d7fbc22009-06-18 05:07:26 +0000112 <target name="checkstyle" description="[action] Does static analysis of GWT source">
fabbott@google.com71e72af2009-06-13 02:28:21 +0000113 <call-subproject subproject="buildtools" subtarget="checkstyle" />
114 <call-subproject subproject="dev" subtarget="checkstyle" />
115 <call-subproject subproject="user" subtarget="checkstyle" />
rice@google.comdbff9c52011-04-05 17:47:39 +0000116 <call-subproject subproject="requestfactory" subtarget="checkstyle" />
fabbott@google.com71e72af2009-06-13 02:28:21 +0000117 <call-subproject subproject="servlet" subtarget="checkstyle" />
118 <call-subproject subproject="tools" subtarget="checkstyle" />
119 <call-subproject subproject="samples" subtarget="checkstyle" />
fabbott@google.com0e2dc6282008-08-22 16:09:01 +0000120 </target>
gwt.team.scottb14c5b9d2006-12-10 06:06:08 +0000121
fabbott@google.com61094352009-07-11 02:18:10 +0000122 <target name="test" depends="dist-dev,apicheck,checkstyle"
123 description="[action] Runs all the GWT tests, including checkstyle and apicheck">
fabbott@google.com71e72af2009-06-13 02:28:21 +0000124 <call-subproject subproject="buildtools" subtarget="test" />
125 <call-subproject subproject="dev" subtarget="test" />
126 <call-subproject subproject="user" subtarget="test" />
rice@google.comdbff9c52011-04-05 17:47:39 +0000127 <call-subproject subproject="requestfactory" subtarget="test" />
fabbott@google.com71e72af2009-06-13 02:28:21 +0000128 <call-subproject subproject="servlet" subtarget="test" />
129 <call-subproject subproject="tools" subtarget="test" />
fabbott@google.com0e2dc6282008-08-22 16:09:01 +0000130 </target>
gwt.team.scottb14c5b9d2006-12-10 06:06:08 +0000131
rice@google.comdbff9c52011-04-05 17:47:39 +0000132 <target name="testrf" depends="dist-dev"
133 description="[action] Runs the GWT RequestFactory tests">
134 <call-subproject subproject="dev" subtarget="compile.tests" />
135 <call-subproject subproject="user" subtarget="compile.tests" />
136 <call-subproject subproject="requestfactory" subtarget="test" />
137 </target>
138
gwt.mirrorbot@gmail.comd54a4bd2010-06-07 19:20:31 +0000139 <target name="benchmark" depends="dist-dev"
140 description="[action] Runs all the GWT benchmarks">
141 <call-subproject subproject="user" subtarget="benchmark" />
142 </target>
143
jlabanca@google.com81244562009-08-05 19:55:36 +0000144 <path id="emma.classpath.src">
145 <pathelement location="${gwt.root}/user/src" />
146 <pathelement location="${gwt.root}/dev/**/src/com/google" />
147 <pathelement location="${gwt.root}/build-tools/**/src/com/google" />
148 <pathelement location="${gwt.root}/tools/**/src/com/google" />
149 </path>
150
151 <target name="emma.merge" description="Merges coverage data for all projects">
152 <delete dir="${emma.merged.out}" />
153 <mkdir dir="${emma.merged.out}" />
154 <emma>
155 <merge outfile="${emma.merged.out}/merged.emma" >
156 <fileset dir="${project.build}">
157 <include name="**/*.emma" />
158 <exclude name="**/merged.emma" />
159 </fileset>
160 </merge>
161 </emma>
162 <emma>
163 <report sourcepath="${emma.classpath.src}">
164 <fileset dir="${project.build}">
165 <patternset>
166 <include name="**/metadata.emma"/>
167 </patternset>
168 </fileset>
169 <fileset file="${emma.merged.out}/merged.emma" />
170 <txt outfile="${emma.merged.out}/coverage.txt" />
171 <html outfile="${emma.merged.out}/coverage.html" />
172 <xml outfile="${emma.merged.out}/coverage.xml" />
173 </report>
174 </emma>
175 </target>
176
fabbott@google.com3d7fbc22009-06-18 05:07:26 +0000177 <target name="clean" description="[action] Cleans the entire GWT build">
fabbott@google.com0e2dc6282008-08-22 16:09:01 +0000178 <delete dir="${gwt.build}" />
conroy@google.comb090e0a2010-10-08 18:08:21 +0000179 <delete file="${gwt.root}/doc/packages.properties" />
fabbott@google.com0e2dc6282008-08-22 16:09:01 +0000180 </target>
fabbott@google.com831b44c2008-04-28 15:22:02 +0000181
fabbott@google.com61094352009-07-11 02:18:10 +0000182 <target name ="presubmit" description="[action] Deprecated for test, which now does checkstyle and apicheck"
jat@google.come0fa5b12009-10-13 23:57:19 +0000183 depends="test">
fabbott@google.com71e72af2009-06-13 02:28:21 +0000184 </target>
jat@google.come0fa5b12009-10-13 23:57:19 +0000185
ecc@google.comed46bf82009-01-29 17:07:24 +0000186 <target name="apicheck-nobuild"
fabbott@google.com3d7fbc22009-06-18 05:07:26 +0000187 description="[action] Checks API compatibility to prior GWT revision">
fabbott@google.com0e2dc6282008-08-22 16:09:01 +0000188 <java failonerror="true" fork="true"
189 classname="com.google.gwt.tools.apichecker.ApiCompatibilityChecker">
jat@google.come7f61a72008-12-24 00:45:21 +0000190 <jvmarg line="-Xmx512m" />
fabbott@google.com0e2dc6282008-08-22 16:09:01 +0000191 <classpath>
192 <pathelement location="${gwt.build.out}/tools/api-checker/bin"/>
jat@google.com0b1619e2009-09-20 19:33:31 +0000193 <fileset dir="${gwt.build.lib}" includes="gwt-user.jar,gwt-dev.jar" />
fabbott@google.com0e2dc6282008-08-22 16:09:01 +0000194 <pathelement path="${java.class.path}"/>
amitmanjhi@google.comfe888202009-05-19 01:02:22 +0000195 <pathelement location="${gwt.tools.lib}/apache/ant-1.6.5.jar" />
fabbott@google.com0e2dc6282008-08-22 16:09:01 +0000196 </classpath>
amitmanjhi@google.comfe888202009-05-19 01:02:22 +0000197 <arg value="-refJar"/>
fabbott@google.com35e6cb12009-07-13 12:30:55 +0000198 <arg path="${gwt.root}/tools/api-checker/reference/gwt-dev-modified.jar:${gwt.root}/tools/api-checker/reference/gwt-user-modified.jar"/>
jat@google.come7f61a72008-12-24 00:45:21 +0000199 <arg value="-configFile"/>
fabbott@google.com744d7842009-10-08 01:58:00 +0000200 <arg file="${gwt.apicheck.config}"/>
amitmanjhi@google.comfe888202009-05-19 01:02:22 +0000201 <arg value="-logLevel"/>
202 <arg value="ERROR"/>
bobv@google.com5b7a2bf2011-01-18 16:32:58 +0000203 <!-- Needed for checking types that include validation APIs -->
204 <arg value="-validationSourceJars" />
205 <arg path="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA-sources.jar" />
fabbott@google.com0e2dc6282008-08-22 16:09:01 +0000206 </java>
207 </target>
jat@google.come0fa5b12009-10-13 23:57:19 +0000208
fabbott@google.com61094352009-07-11 02:18:10 +0000209 <target name="apicheck" depends="buildonly,tools,apicheck-nobuild"
fabbott@google.com3d7fbc22009-06-18 05:07:26 +0000210 description="[action] Builds GWT and checks API compatiblity to prior release"/>
jat@google.come0fa5b12009-10-13 23:57:19 +0000211
gwt.team.scottb14c5b9d2006-12-10 06:06:08 +0000212</project>