<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="-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>
