| <project name="samples-common"> |
| <property name="gwt.root" location="../.." /> |
| <property name="project.tail" value="samples/${sample.root}" /> |
| <import file="${gwt.root}/common.ant.xml" /> |
| |
| <!-- |
| Number of localworkers for sample compilation. This depends on your |
| hardware, so it's a good candidate to specify in local.ant.properties |
| if this default isn't good for you. Ideally, it should approximate |
| the number of CPU cores in your machine. |
| --> |
| <property name="gwt.samples.localworkers" value="2" /> |
| |
| <property name="sample.lower" value="${sample.root}" /> |
| <property name="sample.upper" value="${sample.module}" /> |
| |
| <property name="gwt.args" value="" /> |
| |
| <property.ensure name="gwt.user.jar" location="${gwt.build.lib}/gwt-user.jar" /> |
| <property.ensure name="gwt.dev.jar" location="${gwt.build.lib}/gwt-dev.jar" /> |
| <property.ensure name="gwt.codeserver.jar" location="${gwt.build.lib}/gwt-codeserver.jar" /> |
| <condition property="type.maven"> |
| <available file="pom.xml" /> |
| </condition> |
| |
| <!-- In maven projects show a message indicating how to build the project using 'mvn' --> |
| <target name="check.build.type" if="type.maven"> |
| <echo> |
| ${sample.upper} is a maven project. |
| - use 'mvn clean package' to build it. |
| - or use 'mvn gwt:run' to run it in dev mode. |
| </echo> |
| </target> |
| |
| <!-- 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}" /> |
| |
| <path id="gae.extraclasspath"> |
| <pathelement location="${gwt.tools.lib}/appengine/appengine-api-1.0-sdk-1.3.4.jar"/> |
| <pathelement location="${gwt.tools.lib}/appengine/geronimo-jpa_3.0_spec-1.1.1.jar"/> |
| <pathelement location="${gwt.tools.lib}/appengine/datanucleus-appengine-1.0.7.final.jar"/> |
| </path> |
| |
| <!-- The libraries required by the server that will be copied into WEB-INF/lib. --> |
| <fileset id="sample.server.libs" dir="${gwt.tools.lib}"> |
| <include name="" /> |
| </fileset> |
| |
| <target name="source" depends="check.build.type" description="Copy source to the output folder"> |
| <mkdir dir="${sample.build}/src" /> |
| <copy todir="${sample.build}/src"> |
| <fileset dir="src" /> |
| </copy> |
| <if> |
| <available file="war" type="dir" /> |
| <then> |
| <mkdir dir="${sample.build}/war" /> |
| <copy todir="${sample.build}/war"> |
| <fileset dir="war" excludes="WEB-INF/classes/**"/> |
| </copy> |
| </then> |
| </if> |
| <if> |
| <available file="pom.xml"/> |
| <then> |
| <copy tofile="${sample.build}/pom.xml" file="pom.xml"/> |
| </then> |
| </if> |
| <if> |
| <available file="README-MAVEN.txt"/> |
| <then> |
| <copy tofile="${sample.build}/README-MAVEN.txt" file="README-MAVEN.txt"/> |
| </then> |
| </if> |
| <if> |
| <available file="README.txt"/> |
| <then> |
| <copy tofile="${sample.build}/README.txt" file="README.txt"/> |
| </then> |
| </if> |
| <if> |
| <available file="user-build.xml"/> |
| <then> |
| <copy tofile="${sample.build}/build.xml" file="user-build.xml"/> |
| </then> |
| </if> |
| <if> |
| <available file="user-project"/> |
| <then> |
| <copy tofile="${sample.build}/.project" file="user-project"/> |
| </then> |
| </if> |
| <if> |
| <available file="user-classpath"/> |
| <then> |
| <copy tofile="${sample.build}/.classpath" file="user-classpath"/> |
| </then> |
| </if> |
| <if> |
| <available file="user-settings"/> |
| <then> |
| <copy todir="${sample.build}/.settings"> |
| <fileset dir="user-settings"/> |
| </copy> |
| </then> |
| </if> |
| </target> |
| |
| <target name="serverlibs" unless="type.maven" description="Copy server libs to the output folder"> |
| <mkdir dir="${sample.build}/war/WEB-INF/lib" /> |
| <copy todir="${sample.build}/war/WEB-INF/lib/" flatten="true"> |
| <fileset refid="sample.server.libs" /> |
| </copy> |
| </target> |
| |
| <target name="compile" unless="type.maven" description="Compile all java files"> |
| <mkdir dir="${sample.build}/war/WEB-INF/classes" /> |
| <gwt.javac destdir="${sample.build}/war/WEB-INF/classes" |
| excludes="**/super/**"> |
| <classpath> |
| <pathelement location="${gwt.user.jar}" /> |
| <pathelement location="${gwt.dev.jar}" /> |
| <path refid="sample.extraclasspath" /> |
| </classpath> |
| </gwt.javac> |
| </target> |
| |
| <target name="gwtc" unless="type.maven" description="Compile to JavaScript"> |
| <outofdate> |
| <sourcefiles> |
| <fileset dir="${sample.path}" /> |
| <fileset dir="${sample.build}/war/WEB-INF/classes" /> |
| <fileset file="${gwt.user.jar}" /> |
| <fileset file="${gwt.dev.jar}" /> |
| <path refid="sample.extraclasspath" /> |
| </sourcefiles> |
| <targetfiles path="${sample.build}/war/${sample.lower}/${sample.lower}.nocache.js" /> |
| <sequential> |
| <mkdir dir="${sample.build}/war" /> |
| <java dir="${sample.build}" classname="com.google.gwt.dev.Compiler" |
| fork="yes" failonerror="true"> |
| <classpath> |
| <pathelement path="${sample.path}" /> |
| <path refid="sample.extraclasspath" /> |
| <pathelement location="${sample.build}/war/WEB-INF/classes" /> |
| <pathelement location="${gwt.user.jar}" /> |
| <pathelement location="${gwt.dev.jar}" /> |
| </classpath> |
| <jvmarg value="-Xmx384M" /> |
| <arg value="-localWorkers" /> |
| <arg value="${gwt.samples.localworkers}" /> |
| <arg value="-war" /> |
| <arg file="${sample.build}/war" /> |
| <arg value="com.google.gwt.sample.${sample.lower}.${sample.upper}" /> |
| </java> |
| <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}/${sample.upper}/build.xml" /> |
| </targetfiles> |
| <sequential> |
| <mkdir dir="${samples.scripts}/${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.jar" /> |
| <arg value="-XnoEclipse" /> |
| <arg value="-overwrite" /> |
| <arg value="-out" /> |
| <arg file="${samples.scripts}/${sample.upper}" /> |
| <arg value="com.google.gwt.sample.${sample.lower}.${sample.upper}" /> |
| </java> |
| </sequential> |
| </outofdate> |
| </sequential> |
| </macrodef> |
| |
| <target name="scripts" unless="type.maven" description="Create launch scripts"> |
| <webAppCreator platform="linux" /> |
| <webAppCreator platform="windows" extension=".cmd" /> |
| <webAppCreator platform="mac" /> |
| </target> |
| |
| <target name="build" depends="source, serverlibs, compile, gwtc, scripts" description="Build and package this project" /> |
| |
| <target name="checkstyle" description="Static analysis of source"> |
| <gwt.checkstyle outputdirectory="${sample.build}"> |
| <fileset dir="src" > |
| <!-- ValidationMessages is generated and has funny method names --> |
| <exclude name="main/java/com/google/gwt/sample/validation*/**/ValidationMessages.java" /> |
| </fileset> |
| </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> |
| |
| <target name="devmode" depends="source, compile" unless="type.maven" |
| description="Run Super Dev Mode (pass -Dgwt.args=-nosuperDevMode to fallback to classic DevMode)"> |
| <property name="sample.package" value="com.google.gwt.sample.${sample.root}" /> |
| <java failonerror="true" fork="true" classname="com.google.gwt.dev.DevMode"> |
| <classpath> |
| <pathelement location="${sample.path}"/> |
| <pathelement location="${gwt.user.jar}"/> |
| <pathelement location="${gwt.dev.jar}"/> |
| <pathelement location="${gwt.codeserver.jar}"/> |
| <pathelement location="${sample.build}/war/WEB-INF/classes" /> |
| <path refid="sample.extraclasspath" /> |
| </classpath> |
| <arg line="${gwt.args}"/> |
| <arg line="-war"/> |
| <arg value="${sample.build}/war"/> |
| <arg value="${sample.package}.${sample.module}"/> |
| </java> |
| </target> |
| </project> |