| <project name="samples-common"> | |
| <property name="gwt.root" location="../.." /> | |
| <property name="project.tail" value="samples/${sample.root}" /> | |
| <import file="${gwt.root}/common.ant.xml" /> | |
| <property name="sample.lower" value="${sample.root}" /> | |
| <property name="sample.upper" value="${sample.module}" /> | |
| <property.ensure name="gwt.user.jar" location="${gwt.build.lib}/gwt-user.jar" /> | |
| <!-- Platform shouldn't matter here, just picking one --> | |
| <property.ensure name="gwt.dev.jar" location="${gwt.build.lib}/gwt-dev-linux.jar" /> | |
| <!-- Mirror directory for scripts; makes building distro easier --> | |
| <property name="samples.scripts" value="${gwt.build.out}/samples-scripts" /> | |
| <!-- Use the uppercase name rather than the lowercase name --> | |
| <property name="sample.build" value="${gwt.build.out}/samples/${sample.upper}" /> | |
| <target name="source" description="Copy source to the output folder"> | |
| <mkdir dir="${sample.build}/src" /> | |
| <copy todir="${sample.build}/src"> | |
| <fileset dir="src" /> | |
| </copy> | |
| <mkdir dir="${sample.build}/war" /> | |
| <copy todir="${sample.build}/war"> | |
| <fileset dir="war" excludes="WEB-INF/classes/**"/> | |
| </copy> | |
| </target> | |
| <target name="compile" description="Compile all java files"> | |
| <mkdir dir="${sample.build}/war/WEB-INF/classes" /> | |
| <gwt.javac destdir="${sample.build}/war/WEB-INF/classes"> | |
| <classpath> | |
| <pathelement location="${gwt.user.jar}" /> | |
| <pathelement location="${gwt.dev.jar}" /> | |
| </classpath> | |
| </gwt.javac> | |
| </target> | |
| <target name="gwtc" description="Compile to JavaScript"> | |
| <outofdate> | |
| <sourcefiles> | |
| <fileset dir="src" /> | |
| <fileset dir="${sample.build}/war/WEB-INF/classes" /> | |
| <fileset file="${gwt.user.jar}" /> | |
| <fileset file="${gwt.dev.jar}" /> | |
| </sourcefiles> | |
| <targetfiles path="${sample.build}/war/${sample.lower}/${sample.lower}.nocache.js" /> | |
| <sequential> | |
| <mkdir dir="${sample.build}/war" /> | |
| <gwt.timer name="${sample.upper}"> | |
| <java dir="${sample.build}" classname="com.google.gwt.dev.Compiler" classpath="src:${sample.build}/war/WEB-INF/classes:${gwt.user.jar}:${gwt.dev.jar}" fork="yes" failonerror="true"> | |
| <jvmarg value="-Xmx256M"/> | |
| <arg value="-war" /> | |
| <arg file="${sample.build}/war" /> | |
| <arg value="com.google.gwt.sample.${sample.lower}.${sample.upper}" /> | |
| </java> | |
| </gwt.timer> | |
| <length property="sample.size"> | |
| <fileset dir="${sample.build}/war/${sample.lower}" includes="*.cache.html,*.cache.js"/> | |
| </length> | |
| <echo message="output size for ${sample.upper} is ${sample.size} bytes"/> | |
| </sequential> | |
| </outofdate> | |
| </target> | |
| <macrodef name="webAppCreator"> | |
| <attribute name="platform" /> | |
| <attribute name="extension" default="" /> | |
| <sequential> | |
| <outofdate> | |
| <sourcefiles /> | |
| <targetfiles> | |
| <pathelement location="${samples.scripts}/@{platform}/${sample.upper}/build.xml" /> | |
| </targetfiles> | |
| <sequential> | |
| <mkdir dir="${samples.scripts}/@{platform}/${sample.upper}" /> | |
| <java classname="com.google.gwt.user.tools.WebAppCreator" classpath="${gwt.user.jar}:${gwt.dev.jar}" failonerror="true"> | |
| <!-- Relative path is important! Paths will be relative in final distro --> | |
| <sysproperty key="gwt.devjar" value="../../gwt-dev-@{platform}.jar" /> | |
| <arg value="-XnoEclipse" /> | |
| <arg value="-overwrite" /> | |
| <arg value="-out" /> | |
| <arg file="${samples.scripts}/@{platform}/${sample.upper}" /> | |
| <arg value="com.google.gwt.sample.${sample.lower}.${sample.upper}" /> | |
| </java> | |
| </sequential> | |
| </outofdate> | |
| </sequential> | |
| </macrodef> | |
| <target name="scripts" description="Create launch scripts"> | |
| <webAppCreator platform="linux" /> | |
| <webAppCreator platform="windows" extension=".cmd" /> | |
| <webAppCreator platform="mac" /> | |
| </target> | |
| <target name="build" depends="source, compile, gwtc, scripts" description="Build and package this project" /> | |
| <target name="checkstyle" description="Static analysis of source"> | |
| <gwt.checkstyle> | |
| <fileset dir="src" /> | |
| </gwt.checkstyle> | |
| </target> | |
| <target name="clean" description="Cleans this project's intermediate and output files"> | |
| <delete dir="${sample.build}" /> | |
| <delete includeemptydirs="true"> | |
| <fileset dir="${samples.scripts}"> | |
| <include name="*/${sample.upper}/**" /> | |
| </fileset> | |
| </delete> | |
| </target> | |
| </project> |