<project name="buck" default="default">
  <property environment="env"/>

  <property name="src.dir" value="${basedir}/src" />
  <property name="aosp.src.dir" value="third-party/java/aosp/src" />
  <property name="test.dir" value="${basedir}/test" />
  <property name="third-party.dir" value="${basedir}/third-party" />
  <property name="build.dir" value="${basedir}/build" />
  <property name="aosp.classes.dir" value="${build.dir}/aosp/classes" />
  <property name="testrunner.classes.dir" value="${build.dir}/testrunner/classes" />
  <property name="bootstrapper.src.dir" value="com/facebook/buck/cli/bootstrapper/" />
  <property name="bootstrapper.classes.dir" value="${build.dir}/bootstrapper/classes" />
  <property name="buck.path_to_compile_asset_catalogs_py" value="${basedir}/src/com/facebook/buck/apple/compile_asset_catalogs.py" />
  <property name="buck.path_to_compile_asset_catalogs_build_phase_sh" value="${basedir}/src/com/facebook/buck/apple/compile_asset_catalogs_build_phase.sh" />
  <property name="buck.path_to_sh_binary_template" value="${basedir}/src/com/facebook/buck/shell/sh_binary_template" />
  <property name="buck.logging_config_file" value="${basedir}/config/logging.properties" />
  <property name="buck.test_logging_config_file" value="${basedir}/config/logging.test.properties" />
  <property name="buck.log4j_config_file" value="${basedir}/config/log4j.properties" />
  <property name="classes.dir" value="${build.dir}/classes" />
  <property name="testclasses.dir" value="${build.dir}/testclasses" />
  <property name="javadoc.dir" value="${build.dir}/javadoc" />
  <property name="javadoc-with-android.dir" value="${build.dir}/javadoc-with-android" />
  <property name="javadoc-all.dir" value="${build.dir}/javadoc-all" />
  <property name="client.dir" value="third-party/nailgun" />
  <property name="test.class" value="Test" />
  <property name="lint.outputpath" value="${build.dir}/lint.output" />

  <property name="dx.base.dir" value="${basedir}/third-party/java/dx-from-kitkat" />
  <property name="dx.src.dir" value="${dx.base.dir}/src" />
  <property name="dx.test.dir" value="${dx.base.dir}/tests" />
  <property name="dx.etc.dir" value="${dx.base.dir}/etc" />
  <property name="dx.classes.dir" value="${build.dir}/dx_classes" />

  <property name="eclipse.dir" value="${basedir}/third-party/java/eclipse" />

  <property name="pathlib.dir" value="${third-party.dir}/py/pathlib" />
  <property name="unittest2.dir" value="${third-party.dir}/py/unittest2" />

  <property name="immutables-value-standalone.jar" value="${third-party.dir}/java/immutables/value-standalone-1.1.2.jar" />
  <property name="immutables.gensrc.dir" value="${build.dir}/immutables" />
  <property name="immutables.gensrc.test.dir" value="${build.dir}/immutables-tests" />

  <fileset dir="${third-party.dir}/java" id="buck.jars">
    <include name="args4j/args4j-2.0.30.jar" />
    <include name="ddmlib/ddmlib-22.5.3.jar" />
    <include name="guava/guava-18.0.jar" />
    <include name="ini4j/ini4j-0.5.2.jar" />
    <include name="jackson/jackson-annotations-2.0.5.jar" />
    <include name="jackson/jackson-core-2.0.5.jar" />
    <include name="jackson/jackson-databind-2.0.5.jar" />
    <include name="jackson/jackson-datatype-jdk7-2.5.0.jar" />
    <include name="jsr/jsr305.jar" />
    <include name="android/sdklib.jar" />
    <include name="nailgun/nailgun-server-0.9.2-SNAPSHOT.jar" />
  </fileset>

  <fileset dir="${third-party.dir}/java" id="third-party.jars">
    <include name="asm/asm-debug-all-5.0.3.jar" />
    <include name="auto-service/auto-service-1.0-rc1.jar" />
    <include name="aopalliance/aopalliance.jar" />
    <include name="astyanax/astyanax-cassandra-1.56.38.jar" />
    <include name="astyanax/astyanax-cassandra-1.56.38-javadoc.jar" />
    <include name="astyanax/astyanax-cassandra-1.56.38-sources.jar" />
    <include name="astyanax/astyanax-core-1.56.38.jar" />
    <include name="astyanax/astyanax-thrift-1.56.38.jar" />
    <include name="astyanax/cassandra-1.2.3.jar" />
    <include name="astyanax/cassandra-thrift-1.2.3.jar" />
    <include name="astyanax/high-scale-lib-1.1.2.jar" />
    <include name="closure-templates/soy-excluding-deps.jar" />
    <include name="commons-cli/commons-cli-1.1.jar" />
    <include name="commons-codec/commons-codec-1.2.jar" />
    <include name="commons-compress/commons-compress-1.8.1.jar" />
    <include name="commons-lang/commons-lang-2.6.jar" />
    <include name="dd-plist/dd-plist.jar" />
    <include name="eclipse/org.eclipse.core.contenttype_3.4.200.v20130326-1255.jar" />
    <include name="eclipse/org.eclipse.core.jobs_3.5.300.v20130429-1813.jar" />
    <include name="eclipse/org.eclipse.core.resources_3.8.101.v20130717-0806.jar" />
    <include name="eclipse/org.eclipse.core.runtime_3.9.100.v20131218-1515.jar" />
    <include name="eclipse/org.eclipse.equinox.common_3.6.200.v20130402-1505.jar" />
    <include name="eclipse/org.eclipse.equinox.preferences_3.5.100.v20130422-1538.jar" />
    <include name="eclipse/org.eclipse.jdt.core_3.9.2.v20140114-1555.jar" />
    <include name="eclipse/org.eclipse.osgi_3.9.1.v20140110-1610.jar" />
    <include name="guice/guice-3.0.jar" />
    <include name="guice/guice-assistedinject-3.0.jar" />
    <include name="guice/guice-multibindings-3.0.jar" />
    <include name="gson/gson-2.2.4.jar" />
    <include name="icu4j/icu4j-54.1.1.jar" />
    <include name="immutables/value-1.1.2.jar" />
    <include name="infer-annotations/infer-annotations-1.5.jar" />
    <include name="jacoco/org.jacoco.core-0.7.2.201409121644.jar" />
    <include name="jacoco/org.jacoco.report-0.7.2.201409121644.jar" />
    <include name="jetty/jetty-all-9.0.4.v20130625.jar" />
    <include name="jetty/servlet-api.jar" />
    <include name="joda-time/joda-time-2.2.jar" />
    <include name="jsr/javax.inject-1.jar" />
    <include name="log4j/log4j-1.2.16.jar" />
    <include name="parboiled/parboiled-core-1.1.6.jar" />
    <include name="parboiled/parboiled-java-1.1.6.jar" />
    <include name="slf4j/slf4j-api-1.7.2.jar" />
    <include name="slf4j/slf4j-log4j12-1.7.2.jar" />
    <include name="stringtemplate/ST-4.0.8.jar" />
    <include name="thrift/libthrift-0.7.0.jar" />
    <include name="xz-java-1.3/xz-1.3.jar" />
  </fileset>

  <path id="classpath-no-src">
    <fileset refid="buck.jars" />
    <fileset refid="third-party.jars" />
    <pathelement location="${classes.dir}" />
    <pathelement location="${dx.classes.dir}" />
  </path>

  <path id="classpath">
    <path refid="classpath-no-src" />
    <pathelement location="${src.dir}" />
    <pathelement location="${immutables.gensrc.dir}" />
  </path>

  <path id="classpath-generate-immutables">
    <fileset refid="buck.jars" />
    <fileset refid="third-party.jars" />
    <pathelement location="${aosp.classes.dir}" />
  </path>

  <path id="junit">
    <pathelement location="${third-party.dir}/java/junit/junit-4.11.jar" />
    <pathelement location="${third-party.dir}/java/hamcrest/hamcrest-core-1.3.jar" />
    <pathelement location="${third-party.dir}/java/hamcrest/hamcrest-library-1.3.jar" />
    <pathelement location="${third-party.dir}/java/testng/testng-6.8.jar" />
  </path>

  <target name="clean" description="remove all generated files">
    <delete dir="${build.dir}" />
  </target>

  <!-- Default target so that a command line build can
       do more than one thing. -->
  <target name="default" depends="compile, dx, client, report-generator-jar" />

  <target name="checkversion">
    <!-- The nio Files class was only introduced in Java 7. -->
    <available property="jdk7" classname="java.nio.file.Files"/>
    <fail message="Require JDK 7 or higher" unless="jdk7"/>
  </target>

  <target name="compile-testrunner" depends="checkversion">
    <mkdir dir="${testrunner.classes.dir}" />
    <javac srcdir="${src.dir}"
           includes="com/facebook/buck/junit/**,src/com/facebook/buck/util/concurrent/MoreExecutors.java"
           destdir="${testrunner.classes.dir}"
           classpathref="junit"
           debug="on"
           includeAntRuntime="no"
           >
      <compilerarg value="-Xlint:rawtypes" />
      <compilerarg value="-Xlint:unchecked" />
      <compilerarg value="-Xlint:serial" />
    </javac>
  </target>

  <target name="compile-bootstrapper" depends="checkversion">
    <mkdir dir="${bootstrapper.classes.dir}" />
    <ecj destdir="${bootstrapper.classes.dir}">
      <javac-params>
        <include name="${bootstrapper.src.dir}/**/*.java" />
      </javac-params>
    </ecj>
  </target>

  <path id="immutables-classpath">
    <path refid="classpath" />
    <pathelement location="${immutables-value-standalone.jar}" />
    <pathelement location="${src.dir}" />
    <pathelement location="${aosp.classes.dir}" />
  </path>

  <!-- The set of Immutables value type source files which have not
       yet been run through the javac annotation processor. -->
  <fileset dir="${src.dir}" id="immutables-srcs">
    <!-- Speed up the build by only running javac on files containing Immutables. -->
    <contains text="org.immutables" />
    <exclude name="com/facebook/buck/android/support/**" />
    <exclude name="com/facebook/buck/cli/quickstart/**" />
    <exclude name="com/facebook/buck/junit/**" />
    <!-- Only run javac on immutables files which have changed since the last build. -->
    <modified>
      <param name="cache.cachefile" value="${build.dir}/immutables.modified.properties" />
    </modified>
  </fileset>

  <target name="check-immutables">
    <!--
      javac rules don't support filesets, but they do support comma-separated lists of
      sources in the includes parameter.

      However, if the includes parameter is empty, the javac rule will build everything,
      which we don't want. So we have to skip the generate-immutables step entirely
      in that case.

      This sets ${immutables-srcs-flattened} to a comma-separated list of files to build,
      then sets ${generate-immutables-needed} to true iff that variable is non-empty.
    -->
    <pathconvert property="immutables-srcs-flattened" pathsep="," refid="immutables-srcs">
      <map from="${src.dir}/" to=""/>
    </pathconvert>
    <condition property="generate-immutables-needed">
      <length string="${immutables-srcs-flattened}" when="greater" length="0" />
    </condition>
  </target>

  <target name="compile-aosp" depends="checkversion">
    <mkdir dir="${aosp.classes.dir}" />
    <ecj srcdir="${aosp.src.dir}" destdir="${aosp.classes.dir}">
      <ecj-params>
        <!-- ManifestMerger.java has redundant null checks -->
        <compilerarg value="-err:-null" />
      </ecj-params>
    </ecj>
  </target>

  <target name="generate-immutables" depends="compile-aosp, check-immutables" if="${generate-immutables-needed}">
    <mkdir dir="${immutables.gensrc.dir}" />
    <javac srcdir="${src.dir}:${immutables.gensrc.dir}"
           classpathref="classpath-generate-immutables"
           includeAntRuntime="no"
           includes="${immutables-srcs-flattened}">
      <compilerarg value="-processorpath" />
      <compilerarg value="${immutables-value-standalone.jar}" />
      <compilerarg value="-processor" />
      <compilerarg value="org.immutables.value.internal.processor.Processor" />
      <compilerarg value="-proc:only" />
      <compilerarg value="-s" />
      <compilerarg value="${immutables.gensrc.dir}" />
    </javac>
  </target>

  <macrodef name="ecj" description="Compile Java using the ecj compiler with strict checks.">
    <attribute name="srcdir" default="${src.dir}" />
    <attribute name="classpathref" default="classpath-no-src" />
    <attribute name="destdir" default="${classes.dir}" />
    <!--
      javac-params can contain any extra parameters to the javac ant command.

      include and exclude elements are automatically relative to ${src.dir}.

      According to http://ant.apache.org/manual/Tasks/javac.html, the only way
      to enumerate the .java inputs to javac in Ant is to set the sourcepath
      to the empty string, set the srcdir to something, and use include/exclude
      elements to filter things under the srcdir.
    -->
    <element name="javac-params" optional="true" />
    <!--
      ecj-params can contain any extra paramters to the Eclipse batch compiler.
    -->
    <element name="ecj-params" optional="true" />
    <sequential>
      <javac srcdir="@{srcdir}"
             sourcepath=""
             destdir="@{destdir}"
             classpathref="@{classpathref}"
             debug="on"
             deprecation="on"
             includeAntRuntime="no"
             compiler="org.eclipse.jdt.core.JDTCompilerAdapter"
             >
        <javac-params />
        <!--
          ecj does not appear to support -Werror. As suggested by
          http://stackoverflow.com/a/14927725/396304, we specify an Eclipse preferences
          file to ECJ with the rules we want to enforce set to error.

          To see the full list of compiler options available, read the Javadoc for JavaCore at:
          http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2FJavaCore.html
          Apparently Eclipse refuses to publish traditional Javadoc with manageable URLs.
        -->
        <compilerarg line="-properties ${eclipse.dir}/org.eclipse.jdt.core.prefs" />
        <compilerarg value="-Xlint:rawtypes" />
        <compilerarg value="-Xlint:unchecked" />
        <compilerarg value="-Xlint:serial" />
        <compilerarg value="-time" />
        <compilerclasspath>
          <pathelement location="${eclipse.dir}/org.eclipse.jdt.core_3.9.2.v20140114-1555.jar" />
          <pathelement location="${eclipse.dir}/jdtCompilerAdapter.jar" />
        </compilerclasspath>
        <ecj-params />
      </javac>
    </sequential>
  </macrodef>

  <target name="compile"
          depends="compile-testrunner, compile-bootstrapper, dx, generate-immutables"
          description="compile Java source code">
    <mkdir dir="${classes.dir}" />

    <ecj>
      <javac-params>
        <!-- //src/com/facebook/buck/io:io -->
        <include name="com/facebook/buck/io/PathListing.java" />

        <!-- //src/com/facebook/buck/log:log -->
        <include name="com/facebook/buck/log/CommandThreadAssociation.java" />
        <include name="com/facebook/buck/log/CommandThreadFactory.java" />
        <include name="com/facebook/buck/log/ConsoleHandler.java" />
        <include name="com/facebook/buck/log/GlobalState.java" />
        <include name="com/facebook/buck/log/LogConfig.java" />
        <include name="com/facebook/buck/log/LogConfigPaths.java" />
        <include name="com/facebook/buck/log/LogFormatter.java" />
        <include name="com/facebook/buck/log/Logger.java" />

        <!-- //src/com/facebook/buck/util:concurrent -->
        <include name="com/facebook/buck/util/concurrent/MoreExecutors.java" />
        <include name="com/facebook/buck/util/concurrent/MoreFutures.java" />
        <include name="com/facebook/buck/util/concurrent/TimeSpan.java" />

        <!-- //src/com/facebook/buck/util:exceptions -->
        <include name="com/facebook/buck/util/ExceptionWithHumanReadableMessage.java" />
        <include name="com/facebook/buck/util/HumanReadableException.java" />
        <include name="com/facebook/buck/util/WatchmanWatcherException.java" />

        <!-- //src/com/facebook/buck/util:io -->
        <include name="com/facebook/buck/util/Ansi.java" />
        <include name="com/facebook/buck/util/AnsiEnvironmentChecking.java" />
        <include name="com/facebook/buck/util/Console.java" />
        <include name="com/facebook/buck/util/CapturingPrintStream.java" />
        <include name="com/facebook/buck/util/DefaultDirectoryTraverser.java" />
        <include name="com/facebook/buck/util/DirectoryTraverser.java" />
        <include name="com/facebook/buck/util/DirectoryTraversal.java" />
        <include name="com/facebook/buck/util/DirtyPrintStreamDecorator.java" />
        <include name="com/facebook/buck/util/ImmutableProcessExecutorParams.java" />
        <include name="com/facebook/buck/util/InputStreamConsumer.java" />
        <include name="com/facebook/buck/util/MoreFiles.java" />
        <include name="com/facebook/buck/util/MorePaths.java" />
        <include name="com/facebook/buck/util/MorePosixFilePermissions.java" />
        <include name="com/facebook/buck/util/PkillProcessManager.java" />
        <include name="com/facebook/buck/util/ProcessExecutor.java" />
        <include name="com/facebook/buck/util/ProcessExecutorParams.java" />
        <include name="com/facebook/buck/util/ProcessManager.java" />
        <include name="com/facebook/buck/util/ProjectFilesystem.java" />
        <include name="com/facebook/buck/util/Threads.java" />
        <include name="com/facebook/buck/util/Verbosity.java" />

        <!-- //src/com/facebook/buck/util:constants -->
        <include name="com/facebook/buck/util/BuckConstant.java" />

        <!-- //src/com/facebook/buck/util/environment:platform -->
        <include name="com/facebook/buck/util/environment/Platform.java" />

        <!-- //src/com/facebook/buck/util/immutables:immutables -->
        <include name="com/facebook/buck/util/immutables/BuckStyleImmutable.java" />

        <!-- //src/com/facebook/buck/zip:stream -->
        <include name="com/facebook/buck/zip/AppendingZipOutputStream.java" />
        <include name="com/facebook/buck/zip/ByteIo.java" />
        <include name="com/facebook/buck/zip/CentralDirectory.java" />
        <include name="com/facebook/buck/zip/CustomZipOutputStream.java" />
        <include name="com/facebook/buck/zip/CustomZipEntry.java" />
        <include name="com/facebook/buck/zip/EntryAccounting.java" />
        <include name="com/facebook/buck/zip/OverwritingZipOutputStream.java" />
        <include name="com/facebook/buck/zip/ZipOutputStreams.java" />

        <!-- //src/com/facebook/buck/timing:timing -->
        <include name="com/facebook/buck/timing/*.java" />

        <src path="${immutables.gensrc.dir}" />
      </javac-params>
    </ecj>
    <!-- Copy in scripts we need at run time when using an unpacked buck -->
    <copy file="src/com/facebook/buck/json/buck.py" todir="${classes.dir}/com/facebook/buck/json"/>

    <!--
      Compile code from AOSP using the default compiler.
      Using ecj spits out too many warnings that are not our responsibility to fix.
    -->
    <javac destdir="${classes.dir}"
           classpathref="classpath"
           debug="on"
           deprecation="on"
           includeAntRuntime="no"
           >
      <src path="${aosp.src.dir}" />

      <compilerarg value="-Xlint:rawtypes" />
      <compilerarg value="-Xlint:unchecked" />
      <compilerarg value="-Xlint:serial" />
    </javac>

    <!--
      Note that the inputs to this <ecj> task overlap with those from the previous
      <ecj> task. It's too much work to exclude them here.
    -->
    <ecj>
      <javac-params>
        <!--
          These patterns are excluded because they are compiled elsewhere
          and are deliberately isolated from Buck's core.
        -->
        <exclude name="com/facebook/buck/android/support/**" />
        <exclude name="com/facebook/buck/cli/bootstrapper/**" />
        <exclude name="com/facebook/buck/cli/quickstart/**" />
        <exclude name="com/facebook/buck/junit/**" />
        <src path="${immutables.gensrc.dir}" />
      </javac-params>
    </ecj>
  </target>

  <fileset dir="${third-party.dir}/java" id="dx.jars">
    <include name="guava/guava-18.0.jar" />
  </fileset>

  <path id="dx.classpath">
    <fileset refid="dx.jars" />
  </path>

  <target name="dx-check-build">
    <uptodate property="dx-build-not-required" targetfile="${build.dir}/dx.jar">
      <srcfiles dir="${dx.src.dir}" includes="**/*.java" />
      <srcfiles dir="${third-party.dir}/java/guava" includes="guava-*.jar" />
      <srcfiles dir="${third-party.dir}/java/junit" includes="junit-*.jar" />
    </uptodate>
  </target>

  <target name="dx" depends="dx-check-build" unless="dx-build-not-required">
    <mkdir dir="${dx.classes.dir}" />

    <javac destdir="${dx.classes.dir}"
           classpathref="dx.classpath"
           debug="on"
           deprecation="on"
           includeAntRuntime="no"
           >
      <src path="${dx.src.dir}" />
    </javac>

    <jar destfile="${build.dir}/dx.jar">
      <zipfileset includes="**/*.class" src="${third-party.dir}/java/guava/guava-18.0.jar"/>
      <zipfileset includes="**/*.class" src="${third-party.dir}/java/junit/junit-4.11.jar" />
      <fileset dir="${dx.classes.dir}" />
      <manifest>
        <attribute name="Main-Class" value="com.android.dx.command.Main" />
      </manifest>
    </jar>
  </target>

  <!--
       Note: two of the dx tests (the two tests for the merger) run the command
       "dalvik" and expect it to be a working dalvik virtual machine.
       Fulfilling this expectation is no easy task.  Here's how I did it.

       - Be on Linux (Dalvik doesn't build for Mac).
       - Check out Android (I used ICS because I had it lying around).
       - make -kj25 dalvik-host
       - If you built on a remote machine, rsync "out" to where you are
         developing Buck, inside of a dedicated directory called "android"
         or something.
       - Edit android/out/host/linux-x86/dalvik to change the log tags to
         "*:w", because a spurious info message was messing up the test.
       - Delete android/out/host/linux-x86/dx so the tests will use our dx.
       - Run this rule as
         ANDROID_BUILD_TOP=/path/to/android PATH=$PATH:$ANDROID_BUILD_TOP/out/host/linux-x86/bin ant dx-tests
       -->
  <target name="dx-tests" depends="dx">
    <exec
        failonerror="true"
        dir="${dx.test.dir}"
        executable="./run-all-tests">
      <env key="PATH" path="${env.PATH}:${dx.etc.dir}"/>
    </exec>
  </target>

  <target name="jar" depends="buck-jar, report-generator-jar"/>

  <target name="buck-jar"
          depends="compile"
          description="build buck.jar"
          >

    <jar destfile="${build.dir}/buck.jar" update="true">
      <zipfileset refid="buck.jars" />
      <zipfileset refid="third-party.jars" />
      <fileset dir="${src.dir}"
               excludes="**/*.java, **/BUCK"
               />
      <fileset dir="${classes.dir}" />
      <manifest>
        <attribute name="Main-Class" value="com.facebook.buck.cli.Main" />
      </manifest>
    </jar>
  </target>

  <target name="report-generator-jar" depends="compile">
    <jar destfile="${build.dir}/report-generator.jar">
      <zipfileset excludes="**/*SF **/*RSA" src="${third-party.dir}/java/jacoco/org.jacoco.core-0.7.2.201409121644.jar"/>
      <zipfileset excludes="**/*SF **/*RSA" src="${third-party.dir}/java/jacoco/org.jacoco.report-0.7.2.201409121644.jar"/>
      <zipfileset excludes="**/*SF **/*RSA" src="${third-party.dir}/java/asm/asm-debug-all-5.0.3.jar"/>
      <fileset dir="${classes.dir}">
          <include name="com/facebook/buck/java/ReportGenerator.class"/>
      </fileset>
      <manifest>
        <attribute name="Main-Class" value="com.facebook.buck.java.ReportGenerator" />
      </manifest>
    </jar>
  </target>

  <path id="tests.classpath">
    <path refid="classpath" />
    <fileset dir="${third-party.dir}/java">
      <include name="cglib/cglib-nodep-2.2.jar" />
      <include name="easymock/easymock-3.0.jar" />
      <include name="hamcrest/hamcrest-core-1.3.jar" />
      <include name="hamcrest/hamcrest-library-1.3.jar" />
      <include name="junit/junit-4.11.jar" />
      <include name="objenesis/objenesis-1.2.jar" />
    </fileset>

    <pathelement location="${testclasses.dir}" />
    <pathelement location="${test.dir}" />
    <pathelement location="${testrunner.classes.dir}" />
    <pathelement location="${immutables.gensrc.dir}" />
    <pathelement location="${immutables.gensrc.test.dir}" />
  </path>

  <!-- The set of Immutables value type source files which have not
       yet been run through the javac annotation processor. -->
  <fileset dir="${test.dir}" id="immutables-test-srcs">
    <!-- Speed up the build by only running javac on files containing Immutables. -->
    <contains text="org.immutables" />
    <exclude name="**/testdata/**" />
    <!-- Only run javac on immutables files which have changed since the last build. -->
    <modified>
      <param name="cache.cachefile" value="${build.dir}/immutables.test.modified.properties" />
    </modified>
  </fileset>

  <target name="check-test-immutables">
    <!--
      javac rules don't support filesets, but they do support comma-separated lists of
      sources in the includes parameter.

      However, if the includes parameter is empty, the javac rule will build everything,
      which we don't want. So we have to skip the generate-immutables step entirely
      in that case.

      This sets ${immutables-test-srcs-flattened} to a comma-separated list of files to build,
      then sets ${generate-test-immutables-needed} to true iff that variable is non-empty.
    -->
    <pathconvert property="immutables-test-srcs-flattened" pathsep="," refid="immutables-test-srcs">
      <map from="${test.dir}/" to=""/>
    </pathconvert>
    <condition property="generate-test-immutables-needed">
      <length string="${immutables-test-srcs-flattened}" when="greater" length="0" />
    </condition>
  </target>

  <target name="generate-test-immutables" depends="compile, check-test-immutables" if="${generate-test-immutables-needed}">
    <mkdir dir="${immutables.gensrc.test.dir}" />
    <javac srcdir="${test.dir}:${immutables.gensrc.test.dir}"
           includes="${immutables-test-srcs-flattened}"
           classpathref="tests.classpath"
           includeAntRuntime="no">
      <compilerarg value="-processorpath" />
      <compilerarg value="${immutables-value-standalone.jar}" />
      <compilerarg value="-processor" />
      <compilerarg value="org.immutables.value.internal.processor.Processor" />
      <compilerarg value="-proc:only" />
      <compilerarg value="-s" />
      <compilerarg value="${immutables.gensrc.test.dir}" />
    </javac>
  </target>

  <target name="compile-tests"
          depends="compile, generate-test-immutables"
          >
    <mkdir dir="${testclasses.dir}" />
    <mkdir dir="${immutables.gensrc.dir}" />
    <ecj srcdir="${test.dir}"
         destdir="${testclasses.dir}"
         classpathref="tests.classpath"
         >
      <javac-params>
        <exclude name="**/testdata/**" />
      </javac-params>
    </ecj>
  </target>

  <target name="java-test"
          depends="compile-tests"
          description="runs the Java tests"
          >
    <junit failureproperty="hasFailingTests"
           showoutput="true"
           forkmode="perBatch"
           haltonerror="on">
      <sysproperty key="buck.path_to_compile_asset_catalogs_py" value="${buck.path_to_compile_asset_catalogs_py}" />
      <sysproperty key="buck.path_to_compile_asset_catalogs_build_phase_sh" value="${buck.path_to_compile_asset_catalogs_build_phase_sh}" />
      <sysproperty key="buck.logging_config_file" value="${buck.test_logging_config_file}" />
      <sysproperty key="log4j.configuration" value="file:${buck.log4j_config_file}" />
      <sysproperty key="java.util.logging.config.class" value="com.facebook.buck.log.LogConfig" />

      <!-- See DEFS for details on why this property is needed. -->
      <sysproperty key="sun.zip.disableMemoryMapping" value="true" />

      <formatter type="plain" usefile="false" />

      <batchtest fork="yes">
        <fileset dir="${test.dir}">
          <!--
            Do not exclude tests that start with "Abstract", as there are some tests for abstract
            classes.
          -->
          <include name="**/*${test.class}.java" />
          <exclude name="**/testdata/**" />
        </fileset>
      </batchtest>
      <classpath refid="tests.classpath" />
    </junit>
    <fail if="hasFailingTests" />
  </target>

  <target name="py-test" description="runs the Python tests" depends="buck-py-test, class-loader-py-test, asset-catalogs-py-test, pathlib-py-test" />

  <target name="buck-py-test" description="tests the BUCK parser">
    <exec executable="python" failonerror="true">
      <env key="PYTHONPATH" path="${pathlib.dir}" />
      <arg value="src/com/facebook/buck/json/buck_test.py" />
    </exec>
  </target>

  <target name="class-loader-py-test" description="tests BUCK's class loader setup">
      <exec executable="python" failonerror="true">
          <env key="PYTHONPATH" path="${pathlib.dir}" />
          <arg value="test/com/facebook/buck/cli/bootstrapper/class_loader_test.py" />
      </exec>
  </target>

  <target name="asset-catalogs-py-test" description="tests the asset catalogs compiler">
    <exec executable="python" failonerror="true">
      <arg value="src/com/facebook/buck/apple/compile_asset_catalogs_test.py" />
    </exec>
  </target>

  <target name="pathlib-py-test" description="tests pathlib.py">
    <exec executable="python" failonerror="true" dir="${pathlib.dir}">
      <!-- Needed on Python 2.6. -->
      <env key="PYTHONPATH" path="${unittest2.dir}" />
      <arg value="test_pathlib.py" />
    </exec>
  </target>

  <path id="pmd-classpath">
    <fileset dir="${basedir}/pmd" includes="*.jar" />
  </path>

  <!--
  Runs pmd on the file(s) specified in the property "lint.files",
  separated by commas. Writes output to ${lint.outputpath}.
  -->
  <target name="pmd-files-xml" if="lint.files">
    <taskdef name="pmd"
             classpathref="pmd-classpath"
             classname="net.sourceforge.pmd.ant.PMDTask"
             />
    <pmd failOnRuleViolation="true" rulesetfiles="pmd/rules.xml">
      <ruleset>buck</ruleset>
      <formatter type="xml" toFile="${lint.outputpath}" />
      <fileset dir="${basedir}" includes="${lint.files}">
        <exclude name="**/testdata/**"/>
      </fileset>
    </pmd>
  </target>

  <!--
  Runs pmd on all source and test files.
  -->
  <target name="pmd">
    <taskdef name="pmd"
             classpathref="pmd-classpath"
             classname="net.sourceforge.pmd.ant.PMDTask"
             />
    <pmd failOnRuleViolation="true" rulesetfiles="pmd/rules.xml">
      <ruleset>buck</ruleset>
      <fileset dir="${src.dir}">
        <include name="**/*.java"/>
      </fileset>
      <fileset dir="${test.dir}">
        <include name="**/*.java"/>
        <exclude name="**/testdata/**"/>
      </fileset>
    </pmd>
  </target>

  <path id="checkstyle-classpath">
    <fileset dir="${basedir}/third-party/java/checkstyle" includes="*.jar" />
  </path>

  <!--
  Runs checkstyle on the file(s) specified in the property "lint.files",
  separated by commas.
  -->
  <target name="checkstyle-files-xml" if="lint.files">
    <taskdef resource="checkstyletask.properties"
           classpathref="checkstyle-classpath"/>
    <checkstyle config="checkstyle.xml">
      <formatter type="xml" toFile="${lint.outputpath}" />
      <fileset dir="${basedir}" includes="${lint.files}">
        <exclude name="**/testdata/**"/>
      </fileset>
    </checkstyle>
  </target>

    <!--
  Runs checkstyle on the file(s) specified in the property "lint.files",
  separated by commas.
  -->
  <target name="checkstyle-xml">
    <taskdef resource="checkstyletask.properties"
           classpathref="checkstyle-classpath"/>
    <checkstyle config="checkstyle.xml">
      <formatter type="xml" toFile="${lint.outputpath}" />
      <fileset dir="${src.dir}">
        <include name="**/*.java"/>
      </fileset>
      <fileset dir="${test.dir}">
        <include name="**/*.java"/>
        <exclude name="**/testdata/**"/>
      </fileset>
    </checkstyle>
  </target>

  <!--
  Runs checkstyle on all source and test files.
  -->
  <target name="checkstyle">
    <taskdef resource="checkstyletask.properties"
           classpathref="checkstyle-classpath"/>
    <checkstyle config="checkstyle.xml">
      <fileset dir="${src.dir}">
        <include name="**/*.java"/>
      </fileset>
      <fileset dir="${test.dir}">
        <include name="**/*.java"/>
        <exclude name="**/testdata/**"/>
      </fileset>
      <formatter type="plain"/>
    </checkstyle>
  </target>

  <target name="lint" depends="pmd, checkstyle" />

  <target name="test" depends="java-test, py-test" description="runs the unit tests" />

  <macrodef name="buck-javadoc" description="generates HTML documentation for Java code">
    <attribute name="destdir" />
    <attribute name="classpathref" />
    <attribute name="access" default="protected" />
    <element name="additional-links" optional="true" />
    <sequential>
      <delete dir="@{destdir}" />
      <mkdir dir="@{destdir}" />
      <record name="@{destdir}/javadoc.log" action="start" />
      <javadoc destdir="@{destdir}"
               access="@{access}"
               classpathref="@{classpathref}"
               windowtitle="Buck"
               failonerror="true"
               >
        <fileset dir="${src.dir}">
          <include name="**/*.java" />
          <exclude name="com/facebook/buck/cli/quickstart/**" />
        </fileset>
        <fileset dir="${immutables.gensrc.dir}" />
        <link href="http://docs.oracle.com/javase/7/docs/api/" />
        <link href="http://docs.guava-libraries.googlecode.com/git-history/v18.0/javadoc/"
              offline="true"
              packagelistloc="third-party/java/guava"/>
        <!-- The latest version of the javadocs is only for 4.10 -->
        <link href="https://junit-team.github.io/junit/javadoc/latest/" />
        <additional-links />
      </javadoc>
      <record name="@{destdir}/javadoc.log" action="stop" />
    </sequential>
  </macrodef>

  <target name="-javadoc-deps" depends="compile" />

  <path id="javadoc.classpath">
    <path refid="classpath" />
    <!-- Buck test runner has references to JUnit and TestNG. -->
    <pathelement location="${third-party.dir}/java/junit/junit-4.11.jar" />
    <pathelement location="${third-party.dir}/java/testng/testng-6.8.jar" />
  </path>

  <target name="javadoc"
          description="generates HTML documentation for Java code"
          depends="-javadoc-deps">
    <buck-javadoc destdir="${javadoc.dir}"
                  classpathref="javadoc.classpath"
                  >
    </buck-javadoc>
  </target>

  <path id="javadoc-with-android.classpath">
    <path refid="javadoc.classpath" />
    <!-- Buck's Android support library has references to Android. -->
    <pathelement location="${env.ANDROID_HOME}/platforms/android-16/android.jar" />
  </path>

  <macrodef name="javadoc-with-android">
    <attribute name="destdir" />
    <attribute name="access" />
    <sequential>
      <fail unless="env.ANDROID_HOME" message="ANDROID_HOME not set." />

      <buck-javadoc destdir="@{destdir}"
                    classpathref="javadoc-with-android.classpath"
                    access="@{access}"
                    >
        <additional-links>
          <!--
            This is the recommended way to link to Android's Javadoc.
            This problem derives from Android's refusal to publish the package-list file
            with their Javadoc: http://stackoverflow.com/a/2823592/396304.

            Surprisingly, the generated Javadoc does link to http://d.android.com/
            rather than a local file:/// URI that points to the local $ANDROID_HOME.
          -->
          <link offline="true" href="http://d.android.com/reference" packagelistLoc="${env.ANDROID_HOME}/docs/reference"/>
        </additional-links>
      </buck-javadoc>
    </sequential>
  </macrodef>

  <target name="javadoc-with-android"
          description="generates HTML documentation for Java code with links to Android"
          depends="-javadoc-deps">
    <javadoc-with-android destdir="${javadoc-with-android.dir}" access="protected" />
  </target>

  <target name="verify-javadoc"
          description="verify that full Javadoc ran without errors"
          depends="-javadoc-deps">
    <!-- Runs javadoc with -private to catch errors in all possible docblocks. -->
    <javadoc-with-android destdir="${javadoc-all.dir}" access="private" />
    <exec executable="${basedir}/scripts/verify-javadoc.py" failonerror="true">
      <arg value="${javadoc-all.dir}/javadoc.log" />
    </exec>
  </target>

  <target name="travis" depends="test, verify-javadoc" />

  <target name="client" description="install nailgun buckd c client (non Windows only)">
    <mkdir dir="${build.dir}" />
    <exec dir="${basedir}"
          executable="gcc"
          failonerror="true"
          osfamily="unix">
      <arg line="-Wall -pedantic -O3 -o ${build.dir}/ng ${client.dir}/nailgun-client/ng.c" />
    </exec>
  </target>

  <target name="pre-checkin" depends="clean, default, compile-tests, lint"/>
  <target name="all" depends="jar, test, javadoc, client" />
</project>
