| <project name="GWT" default="dist" basedir="."> |
| <property name="gwt.root" location="." /> |
| <property name="project.tail" value="" /> |
| <import file="${gwt.root}/common.ant.xml" /> |
| |
| <!-- "build" is the default when subprojects are directly targetted --> |
| <property name="target" value="build" /> |
| <property name="emma.merged.out" value="${project.build}/emma-coverage" /> |
| |
| <!-- |
| Convenience for the lateral calls we make. Use gwt.ant to |
| descend into another directory, and this to call in the same build.xml. |
| NOTE THE USE OF $TARGET, here and in common's gwt.ant. This has the |
| effect of dividing rules into subdirectory rules (using gwt.ant and |
| sensitive to $target) and action rules (using call-subproject and |
| setting $target)... but it is Bad for a subdirectory rule to depend |
| on another one, as they are both sensitive to $target, but you probably |
| mean that subdirB needed subdirA to be _built_, not $target'ed (tested, |
| etc.) |
| |
| In other words, DO NOT USE DEPENDS=... IN A TARGET WITH GWT.ANT. |
| --> |
| <macrodef name="call-subproject"> |
| <attribute name="subproject" /> |
| <attribute name="subtarget" /> |
| <sequential> |
| <antcall target="@{subproject}"> |
| <param name="target" value="@{subtarget}" /> |
| </antcall> |
| </sequential> |
| </macrodef> |
| |
| <property name="gwt.apicheck.config" |
| location="tools/api-checker/config/gwt16_20userApi.conf"/> |
| |
| <target name="buildonly" |
| description="[action] Minimal one-platform devel build, without distro packaging"> |
| <call-subproject subproject="dev" subtarget="build" /> |
| <call-subproject subproject="user" subtarget="build" /> |
| <call-subproject subproject="servlet" subtarget="build" /> |
| <call-subproject subproject="jni" subtarget="build" /> |
| </target> |
| |
| <target name="dist" depends="build, doc" description="[action] Make all the distributions"> |
| <gwt.ant dir="distro-source" /> |
| </target> |
| |
| <target name="dist-dev" depends="buildonly" description="[action] Make this platform's distribution, minus doc and samples"> |
| <gwt.ant dir="distro-source" target="build" /> |
| </target> |
| |
| <target name="dev" description="[subdir] Builds (or runs ${target} if set) all the dev libraries"> |
| <call-subproject subproject="buildtools" subtarget="build" /> |
| <gwt.ant dir="dev" /> |
| </target> |
| |
| <target name="user" description="[subdir] Builds (or runs ${target} if set) only the user library"> |
| <call-subproject subproject="dev" subtarget="build"/> |
| <gwt.ant dir="user" /> |
| </target> |
| |
| <target name="tools" description="[subdir] Builds (or runs ${target} if set) only the tools"> |
| <call-subproject subproject="user" subtarget="build"/> |
| <gwt.ant dir="tools" /> |
| </target> |
| |
| <target name="servlet" description="[subdir] Builds (or runs ${target} if set) only the servlet jar"> |
| <call-subproject subproject="user" subtarget="build" /> |
| <gwt.ant dir="servlet" /> |
| </target> |
| |
| <target name="jni" description="[subdir] Builds (or runs ${target} if set) jni for all platforms"> |
| <gwt.ant dir="jni" /> |
| </target> |
| |
| <target name="doc" description="[subdir] Builds (or runs ${target} if set) the doc"> |
| <call-subproject subproject="user" subtarget="build" /> |
| <gwt.ant dir="doc" /> |
| </target> |
| |
| <target name="samples" description="[subdir] Builds (or runs ${target} if set) the samples"> |
| <call-subproject subproject="user" subtarget="build" /> |
| <gwt.ant dir="samples" /> |
| </target> |
| |
| <target name="buildtools" description="[subdir] Build (or runs ${target} if set) the build tools"> |
| <gwt.ant dir="build-tools" /> |
| </target> |
| |
| <target name="build" description="[action] Builds GWT, including samples, but without distro packaging"> |
| <call-subproject subproject="dev" subtarget="build"/> |
| <call-subproject subproject="user" subtarget="build"/> |
| <call-subproject subproject="servlet" subtarget="build"/> |
| <call-subproject subproject="tools" subtarget="build"/> |
| <call-subproject subproject="jni" subtarget="build"/> |
| <call-subproject subproject="samples" subtarget="build"/> |
| </target> |
| |
| <target name="checkstyle" description="[action] Does static analysis of GWT source"> |
| <call-subproject subproject="buildtools" subtarget="checkstyle" /> |
| <call-subproject subproject="dev" subtarget="checkstyle" /> |
| <call-subproject subproject="user" subtarget="checkstyle" /> |
| <call-subproject subproject="servlet" subtarget="checkstyle" /> |
| <call-subproject subproject="tools" subtarget="checkstyle" /> |
| <call-subproject subproject="samples" subtarget="checkstyle" /> |
| </target> |
| |
| <target name="test" depends="dist-dev,apicheck,checkstyle" |
| description="[action] Runs all the GWT tests, including checkstyle and apicheck"> |
| <call-subproject subproject="buildtools" subtarget="test" /> |
| <call-subproject subproject="dev" subtarget="test" /> |
| <call-subproject subproject="user" subtarget="test" /> |
| <call-subproject subproject="servlet" subtarget="test" /> |
| <call-subproject subproject="tools" subtarget="test" /> |
| </target> |
| |
| <path id="emma.classpath.src"> |
| <pathelement location="${gwt.root}/user/src" /> |
| <pathelement location="${gwt.root}/dev/**/src/com/google" /> |
| <pathelement location="${gwt.root}/build-tools/**/src/com/google" /> |
| <pathelement location="${gwt.root}/tools/**/src/com/google" /> |
| </path> |
| |
| <target name="emma.merge" description="Merges coverage data for all projects"> |
| <delete dir="${emma.merged.out}" /> |
| <mkdir dir="${emma.merged.out}" /> |
| <emma> |
| <merge outfile="${emma.merged.out}/merged.emma" > |
| <fileset dir="${project.build}"> |
| <include name="**/*.emma" /> |
| <exclude name="**/merged.emma" /> |
| </fileset> |
| </merge> |
| </emma> |
| <emma> |
| <report sourcepath="${emma.classpath.src}"> |
| <fileset dir="${project.build}"> |
| <patternset> |
| <include name="**/metadata.emma"/> |
| </patternset> |
| </fileset> |
| <fileset file="${emma.merged.out}/merged.emma" /> |
| <txt outfile="${emma.merged.out}/coverage.txt" /> |
| <html outfile="${emma.merged.out}/coverage.html" /> |
| <xml outfile="${emma.merged.out}/coverage.xml" /> |
| </report> |
| </emma> |
| </target> |
| |
| <target name="clean" description="[action] Cleans the entire GWT build"> |
| <delete dir="${gwt.build}" /> |
| </target> |
| |
| <target name ="presubmit" description="[action] Deprecated for test, which now does checkstyle and apicheck" |
| depends="test"> |
| </target> |
| |
| <target name="apicheck-nobuild" |
| description="[action] Checks API compatibility to prior GWT revision"> |
| <java failonerror="true" fork="true" |
| classname="com.google.gwt.tools.apichecker.ApiCompatibilityChecker"> |
| <jvmarg line="-Xmx512m" /> |
| <classpath> |
| <pathelement location="${gwt.build.out}/tools/api-checker/bin"/> |
| <fileset dir="${gwt.build.lib}" includes="gwt-user.jar,gwt-dev.jar" /> |
| <pathelement path="${java.class.path}"/> |
| <pathelement location="${gwt.tools.lib}/apache/ant-1.6.5.jar" /> |
| </classpath> |
| <arg value="-refJar"/> |
| <arg path="${gwt.root}/tools/api-checker/reference/gwt-dev-modified.jar:${gwt.root}/tools/api-checker/reference/gwt-user-modified.jar"/> |
| <arg value="-configFile"/> |
| <arg file="${gwt.apicheck.config}"/> |
| <arg value="-logLevel"/> |
| <arg value="ERROR"/> |
| </java> |
| </target> |
| |
| <target name="apicheck" depends="buildonly,tools,apicheck-nobuild" |
| description="[action] Builds GWT and checks API compatiblity to prior release"/> |
| |
| </project> |