<project name="common">
  <!-- it's okay for this not to exist, but it gives a place to store
       personal property settings, if any, persistently.  For example, you
       might use it to set gwt.junit.testcase.includes to a narrower subset
       of test cases to exercise. -->
  <property file="local.ant.properties"/>

  <!-- gwt.build.iscasesensitivefs is true if the filesystem of the
    build machine is case-sensitive, false otherwise.  Update with
    new lines for any supported platforms with case-insensitive
    filesystems
  -->
  <condition property="gwt.build.iscasesensitivefs" else="false">
    <not>
      <or>
        <os family="windows"/>
      </or>
    </not>
  </condition>

  <property name="test.ant.file" location="${gwt.root}/${project.tail}/build.xml"/>
  <condition property="project.valid">
    <equals arg1="${ant.file}" arg2="${test.ant.file}"
            casesensitive="${gwt.build.iscasesensitivefs}"/>
  </condition>
  <fail unless="project.valid"
        message="This build file is in an inconsistent state (${ant.file} != ${test.ant.file})."/>

  <!-- Global Properties -->
  <condition property="isJava8">
    <not>
      <equals arg1="${ant.java.version}" arg2="1.7" />
    </not>
  </condition>
  <property environment="env"/>
  <condition property="gwt.version" value="${env.GWT_VERSION}" else="0.0.0">
    <isset property="env.GWT_VERSION"/>
  </condition>
  <condition property="gwt.tools.check" value="${env.GWT_TOOLS}" else="${gwt.root}/../tools">
    <isset property="env.GWT_TOOLS"/>
  </condition>
  <property name="gwt.tools" location="${gwt.tools.check}"/>
  <property name="gwt.tools.lib" location="${gwt.tools}/lib"/>
  <property name="gwt.tools.antlib" location="${gwt.tools}/antlib"/>
  <property name="gwt.tools.redist" location="${gwt.tools}/redist"/>
  <property name="gwt.build" location="${gwt.root}/build"/>
  <property name="gwt.build.out" location="${gwt.build}/out"/>
  <property name="gwt.build.lib" location="${gwt.build}/lib"/>
  <property name="gwt.build.jni" location="${gwt.build}/jni"/>
  <property name="gwt.build.staging" location="${gwt.build}/staging"/>
  <property name="gwt.build.dist" location="${gwt.build}/dist"/>
  <!-- gwt.threadsPerProcessor supercedes gwt.threadCount unless set to 0 -->
  <property name="gwt.threadsPerProcessor" value="1"/>
  <property name="gwt.threadCount" value="1"/>
  <property name="project.build" location="${gwt.build.out}/${project.tail}"/>
  <property name="project.lib" location="${gwt.build.lib}/gwt-${ant.project.name}.jar"/>
  <property name="project.jni" location="${gwt.build}/${project.tail}"/>
  <property name="javac.out" location="${project.build}/bin"/>
  <property name="javac.junit.out" location="${project.build}/bin-test"/>
  <property name="javac.emma.out" location="${project.build}/bin-emma"/>
  <property name="javac.debug" value="true"/>
  <property name="javac.debuglevel" value="lines,vars,source"/>
  <property name="javac.encoding" value="utf-8"/>
  <property name="javac.source" value="1.7"/>
  <property name="javac.target" value="1.7"/>
  <property name="javac.nowarn" value="true"/>
  <property name="junit.out" location="${project.build}/test"/>
  <property name="emma.dir" value="${gwt.tools.redist}/emma"/>
  <property name="emma.filter.exclude" value=""/>

  <!-- Sanity check -->
  <available file="${gwt.tools}" type="dir" property="gwt.tools.exists"/>
  <fail unless="gwt.tools.exists"
        message="Cannot find '${gwt.tools}' tools directory; perhaps you should define the GWT_TOOLS environment variable"/>

  <!-- Platform identification -->
  <condition property="build.host.islinux">
    <and>
      <os family="unix"/>
      <not>
        <contains string="${os.name}" substring="mac" casesensitive="false"/>
      </not>
    </and>
  </condition>
  <condition property="build.host.platform" value="linux">
    <isset property="build.host.islinux"/>
  </condition>

  <condition property="build.host.ismac">
    <and>
      <os family="unix"/>
      <contains string="${os.name}" substring="mac" casesensitive="false"/>
    </and>
  </condition>
  <condition property="build.host.platform" value="mac">
    <isset property="build.host.ismac"/>
  </condition>

  <condition property="build.host.iswindows">
    <os family="windows"/>
  </condition>
  <condition property="build.host.platform" value="windows">
    <isset property="build.host.iswindows"/>
  </condition>
  <fail unless="build.host.platform" message="Building on ${os.name} is not supported"/>

  <!-- JVM -->
  <condition property="build.jvm.is15">
    <equals arg1="${ant.java.version}" arg2="1.5"/>
  </condition>

  <condition property="build.jvm.is16">
    <equals arg1="${ant.java.version}" arg2="1.6"/>
  </condition>

  <!-- JUnit support -->
  <property name="gwt.junit.port" value="8888"/>
  <property name="gwt.junit.testcase.includes" value="**/*Suite.class"/>

  <!-- Shared class paths -->
  <path id="project.classpath.class">
    <pathelement location="${javac.out}"/>
  </path>
  <path id="project.classpath.src">
    <pathelement location="${gwt.root}/${project.tail}/src"/>
  </path>

  <!-- Pulls in tasks defined in ant-contrib, i.e. foreach -->
  <taskdef resource="net/sf/antcontrib/antlib.xml">
    <classpath>
      <pathelement location="${gwt.tools.antlib}/ant-contrib-1.0b3.jar"/>
    </classpath>
  </taskdef>


  <!-- Pulls in tasks defined in antcount, i.e. countfilter -->
  <taskdef resource="net/sf/antcount/antlib.xml">
    <classpath>
      <pathelement location="${gwt.tools.antlib}/antcount-1.2.jar"/>
    </classpath>
  </taskdef>


  <!-- Global Custom Tasks -->
  <presetdef name="gwt.ant">
    <ant inheritall="false" target="${target}">
      <propertyset>
        <propertyref name="gwt.version"/>
        <propertyref name="gwt.junit.port"/>
        <propertyref name="gwt.remote.browsers"/>
        <propertyref name="emma.enabled"/>
        <propertyref name="emma.compiled"/>
      </propertyset>
    </ant>
  </presetdef>

  <presetdef name="gwt.javac">
    <javac srcdir="src" destdir="${javac.out}" debug="${javac.debug}"
           debuglevel="${javac.debuglevel}" source="${javac.source}" target="${javac.target}"
           nowarn="${javac.nowarn}" encoding="${javac.encoding}" fork="true"
           memoryMaximumSize="1024m" includeantruntime="false"/>
  </presetdef>

  <macrodef name="gwt.jar">
    <attribute name="destfile" default="${project.lib}"/>
    <attribute name="duplicate" default="fail"/>
    <attribute name="update" default="true"/>
    <element name="jarcontents" implicit="true"/>
    <sequential>
      <jar destfile="@{destfile}" duplicate="@{duplicate}" filesonly="false"
          index="true" update="@{update}">
        <jarcontents/>
      </jar>
    </sequential>
  </macrodef>

  <macrodef name="gwt.junit">
    <!-- TODO: Because dev has core, oophm splits, the "common pattern" here doesn't work
         for it (and we use extraclasspaths entries instead).  Once we lose SWT, we can
         consolidate dev/core and dev/oophm, and that can instead more to the normal
         pattern.  Note also special casing regarding (dev/) core/test. -->
    <attribute name="test.args" default=""/>
    <attribute name="test.jvmargs" default=""/>
    <attribute name="test.out" default=""/>
    <attribute name="test.reports" default="@{test.out}/reports"/>
    <attribute name="test.emma.coverage" default="@{test.out}/emma-coverage"/>
    <attribute name="test.cases" default=""/>
    <attribute name="test.name" default=""/>
    <attribute name="test.extra.jvmargs" default=""/>
    <attribute name="haltonfailure" default="true"/>
    <element name="extraclasspaths" optional="true"/>
    <sequential>
      <taskdef name="junit" classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask">
        <classpath>
          <pathelement location="${gwt.tools.lib}/junit/junit-4.8.2.jar"/>
          <pathelement location="${gwt.tools.antlib}/ant-junit-1.6.5.jar"/>
          <pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar"/>
        </classpath>
      </taskdef>

      <echo message="Writing test results to @{test.reports} for @{test.cases}"/>
      <mkdir dir="@{test.reports}"/>

      <antcall target="-create.emma.coverage.if.enabled">
        <param name="test.emma.coverage" value="@{test.emma.coverage}"/>
      </antcall>
      <condition property="emma.lib" value="${emma.dir}/emma-2.0.5312-patched.jar"
                 else="${emma.dir}/no-emma-requested">
        <isset property="emma.enabled"/>
      </condition>

      <junit dir="@{test.out}" fork="yes" printsummary="yes"
             failureproperty="junit.failure" tempdir="@{test.out}">
        <jvmarg line="-Xmx1024m"/>
        <jvmarg line="-Xss4M"/>
        <jvmarg value="-Demma.coverage.out.file=@{test.emma.coverage}/coverage.emma"/>
        <jvmarg value="-Demma.coverage.out.merge=true"/>
        <jvmarg value="-Dcom.google.gwt.junit.reportPath=reports"/>
        <jvmarg line="@{test.jvmargs}"/>
        <sysproperty key="gwt.args" value="@{test.args}"/>
        <sysproperty key="java.awt.headless" value="true"/>
        <classpath>
          <path refid="project.classpath.src"/>
          <pathelement location="${gwt.root}/${project.tail}/super"/>
          <pathelement location="${gwt.root}/${project.tail}/test"/>
          <!-- TODO: this is here because e.g. ClassPathEntryTest otherwise fails,
               expecting the src entry (core/test) to be earlier than the bin entry
               (${javac.junit.out}). -->
          <pathelement location="${gwt.root}/${project.tail}/core/test"/>
          <!-- Emma compiled classes must appear before non-emma compiled
               classes to generate code coverage stats.  javac.emma.out is
               empty unless emma is enabled. -->
          <pathelement location="${javac.emma.out}"/>
          <pathelement location="${javac.junit.out}"/>
          <path refid="project.classpath.class"/>
          <pathelement location="${emma.lib}"/>
          <pathelement location="${gwt.dev.staging.jar}"/>
          <pathelement location="${gwt.tools.lib}/junit/junit-4.8.2.jar"/>
          <pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar"/>
          <pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar"/>
          <pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg2.jar"/>
          <extraclasspaths/>
        </classpath>

        <formatter type="plain"/>
        <formatter type="xml"/>

        <batchtest todir="@{test.reports}">
          <fileset refid="@{test.cases}"/>
        </batchtest>
      </junit>

      <emma enabled="${emma.enabled}">
        <report sourcepath="${project.classpath.src}">
          <fileset file="${javac.emma.out}/metadata.emma"/>
          <fileset dir="@{test.emma.coverage}">
            <include name="*.emma"/>
          </fileset>
          <txt outfile="@{test.emma.coverage}/coverage.txt"/>
          <html outfile="@{test.emma.coverage}/coverage.html"/>
          <xml outfile="@{test.emma.coverage}/coverage.xml"/>
        </report>
      </emma>

      <condition property="junit.stop.build" value="true">
        <and>
          <istrue value="@{haltonfailure}"/>
          <isset property="junit.failure"/>
        </and>
      </condition>
      <fail
          message="One or more junit tests failed for target: @{test.name} @{test.args}"
          if="junit.stop.build" status="2"/>
    </sequential>
  </macrodef>

  <macrodef name="gwt.getgitinfo" description="Identifies the GIT info of a workspace">
    <sequential>
      <exec executable="git" searchpath="true" outputproperty="gwt.gitrev">
        <arg line="rev-parse --short HEAD"/>
      </exec>
      <!-- Generally, filtering requires a sentinel file so that changes to git rev will
         be noticed as invalidating the previously-generated filter output.  This property
         names where such a sentinel lives; it is tested with <available/> and created
         with <touch/> -->
      <mkdir dir="${project.build}/sentinels"/>
      <property name="filter.sentinel"
                location="${project.build}/sentinels/gwt-${gwt.version}-git-${gwt.gitrev}"/>
    </sequential>
  </macrodef>

  <macrodef name="gwt.revfilter" description="Filters files for versioning">
    <attribute name="todir" description="Destination for the filtered copy"/>

    <element name="src.fileset" implicit="true"
             description="Source for the filtered copy"/>
    <sequential>
      <!-- These files must be filtered for versioning -->
      <echo message="Branding as GWT version ${gwt.version}, GIT commit ${gwt.gitrev}"/>
      <mkdir dir="@{todir}"/>
      <copy todir="@{todir}" overwrite="true">
        <src.fileset/>
        <filterset>
          <filter token="GWT_VERSION" value="${gwt.version}"/>
          <filter token="GWT_GITREV" value="${gwt.gitrev}"/>
        </filterset>
      </copy>
    </sequential>
  </macrodef>

  <macrodef name="gwt.checkstyle">
    <attribute name="outputdirectory" default="${project.build}"/>
    <element name="sourcepath" implicit="yes" optional="true"/>
    <sequential>
      <taskdef resource="checkstyletask.properties"
               classpath="${gwt.tools.antlib}/checkstyle-6.0-all.jar"/>
      <mkdir dir="@{outputdirectory}"/>
      <checkstyle config="${gwt.root}/eclipse/settings/code-style/gwt-checkstyle.xml" maxErrors="0"
                  failOnViolation="false" failureProperty="gwt.checkstyle.failed">
        <formatter type="xml" toFile="@{outputdirectory}/checkstyle_log.xml"/>
        <property key="checkstyle.header.file"
                  file="${gwt.root}/eclipse/settings/code-style/google.header"/>
        <sourcepath/>
      </checkstyle>
      <fail
          message="Checkstyle errors exist, and are reported at @{outputdirectory}/checkstyle_log.xml"
          if="gwt.checkstyle.failed"/>
    </sequential>
  </macrodef>

  <macrodef name="gwt.checkstyle.tests">
    <attribute name="outputdirectory" default="${project.build}"/>
    <element name="sourcepath" implicit="yes" optional="true"/>
    <sequential>
      <taskdef resource="checkstyletask.properties"
               classpath="${gwt.tools.antlib}/checkstyle-6.0-all.jar"/>
      <mkdir dir="@{outputdirectory}"/>
      <checkstyle config="${gwt.root}/eclipse/settings/code-style/gwt-checkstyle-tests.xml"
                  maxErrors="0" failOnViolation="false"
                  failureProperty="gwt.checkstyle-tests.failed">
        <formatter type="xml" toFile="@{outputdirectory}/checkstyle_tests_log.xml"/>
        <property key="checkstyle.header.file"
                  file="${gwt.root}/eclipse/settings/code-style/google.header"/>
        <sourcepath/>
      </checkstyle>
      <fail
          message="Checkstyle errors exist in tests, and are reported at @{outputdirectory}/checkstyle_tests_log.xml"
          if="gwt.checkstyle-tests.failed"/>
    </sequential>
  </macrodef>

  <macrodef name="property.ensure">
    <attribute name="name"/>
    <attribute name="location"/>
    <attribute name="message" default="Cannot find dependency ${@{name}}"/>
    <attribute name="unless" default="__nonexistent_property__"/>
    <sequential>
      <property name="@{name}" location="@{location}"/>
      <condition property="@{name}.exists">
        <or>
          <available file="${@{name}}"/>
          <isset property="@{unless}"/>
        </or>
      </condition>
      <fail unless="@{name}.exists" message="@{message}"/>
    </sequential>
  </macrodef>

  <!-- Targets for emma support.  To run tests with emma enabled, use
       ant <test-target> -Demma.enabled=true -->
  <path id="emma.taskdef.lib">
    <pathelement location="${emma.dir}/emma-2.0.5312-patched.jar"/>
    <pathelement location="${emma.dir}/emma_ant-2.0.5312.jar"/>
  </path>

  <taskdef resource="emma_ant.properties" classpathref="emma.taskdef.lib"/>

  <!-- Instruments emma classes -->
  <target name="compile.emma.if.enabled" unless="emma.compiled">
    <delete dir="${javac.emma.out}"/>
    <property name="emma.compiled" value="true"/>
    <antcall target="-compile.emma.if.enabled"/>
  </target>

  <!-- Instruments emma classes -->
  <target name="-compile.emma.if.enabled" if="emma.enabled">
    <mkdir dir="${javac.emma.out}"/>
    <path id="emma.classpath">
      <pathelement location="${javac.out}"/>
    </path>
    <emma enabled="${emma.enabled}">
      <instr instrpathref="emma.classpath" destdir="${javac.emma.out}"
             metadatafile="${javac.emma.out}/metadata.emma" merge="false">
        <filter includes="com.google.*"/>
        <filter excludes="${emma.filter.exclude}"/>
      </instr>
    </emma>
  </target>

  <!-- Create the emma coverage directory -->
  <target name="-create.emma.coverage.if.enabled" if="emma.enabled">
    <delete dir="${test.emma.coverage}"/>
    <mkdir dir="${test.emma.coverage}"/>
  </target>

  <!-- Default implementations of the required targets; projects should
  override the ones that matter -->
  <target name="all" depends="verify"/>
  <target name="verify" depends="checkstyle, test"
          description="Runs tests and checkstyle static analysis"/>
  <target name="checkstyle"/>
  <target name="compile.tests"/>
  <target name="test" depends="build"/>
  <target name="build"/>

  <target name="clean">
    <delete dir="${project.build}"/>
  </target>

</project>
