<project name="buck" default="default">

  <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="plugin.dir" value="${basedir}/plugin" />
  <property name="lib.dir" value="${basedir}/lib" />
  <property name="third-party.dir" value="${basedir}/third-party" />
  <property name="build.dir" value="${basedir}/build" />
  <property name="testrunner.classes.dir" value="${build.dir}/testrunner/classes" />
  <property name="abi_processor.src.dir" value="${src.dir}/com/facebook/buck/java/abi/" />
  <property name="abi_processor.classes.dir" value="${build.dir}/abi_processor/classes" />
  <property name="buck.path_to_buck_py" value="${basedir}/src/com/facebook/buck/parser/buck.py" />
  <property name="buck.path_to_emma_jar"
            value="${basedir}/third-party/java/emma-2.0.5312/out/emma-2.0.5312.jar"
            />
  <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="client.dir" value="third-party/nailgun" />

  <fileset dir="${lib.dir}" id="buck.jars">
    <include name="args4j.jar" />
    <include name="ddmlib-r21.jar" />
    <include name="guava-15.0.jar" />
    <include name="ini4j-0.5.2.jar" />
    <include name="jackson-annotations-2.0.5.jar" />
    <include name="jackson-core-2.0.5.jar" />
    <include name="jackson-databind-2.0.5.jar" />
    <include name="jsr305.jar" />
    <include name="sdklib.jar" />
    <include name="nailgun-server-0.9.2-SNAPSHOT.jar" />
  </fileset>

  <fileset dir="${third-party.dir}" id="third-party.jars">
    <include name="java/asm/asm-debug-all-4.1.jar" />
    <include name="java/astyanax/astyanax-cassandra-1.56.38.jar" />
    <include name="java/astyanax/astyanax-cassandra-1.56.38-javadoc.jar" />
    <include name="java/astyanax/astyanax-cassandra-1.56.38-sources.jar" />
    <include name="java/astyanax/astyanax-core-1.56.38.jar" />
    <include name="java/astyanax/astyanax-thrift-1.56.38.jar" />
    <include name="java/astyanax/cassandra-1.2.3.jar" />
    <include name="java/astyanax/cassandra-thrift-1.2.3.jar" />
    <include name="java/astyanax/commons-cli-1.1.jar" />
    <include name="java/astyanax/commons-codec-1.2.jar" />
    <include name="java/astyanax/commons-lang-2.6.jar" />
    <include name="java/astyanax/high-scale-lib-1.1.2.jar" />
    <include name="java/astyanax/joda-time-2.2.jar" />
    <include name="java/astyanax/libthrift-0.7.0.jar" />
    <include name="java/astyanax/log4j-1.2.16.jar" />
    <include name="java/astyanax/slf4j-api-1.7.2.jar" />
    <include name="java/astyanax/slf4j-log4j12-1.7.2.jar" />
    <include name="java/jetty/jetty-all-9.0.4.v20130625.jar" />
    <include name="java/jetty/servlet-api.jar" />
    <include name="java/neo4j/geronimo-jta_1.1_spec-1.1.1.jar"/>
    <include name="java/neo4j/lucene-core-3.6.2.jar"/>
    <include name="java/neo4j/neo4j-kernel-2.0.0-M05.jar"/>
    <include name="java/neo4j/neo4j-lucene-index-2.0.0-M05.jar"/>
    <include name="java/xz-java-1.3/xz-1.3.jar" />
  </fileset>

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

  <path id="junit">
    <pathelement location="${lib.dir}/junit-4.11.jar" />
    <pathelement location="${lib.dir}/hamcrest-core-1.3.jar" />
    <pathelement location="${lib.dir}/hamcrest-library-1.3.jar" />
  </path>

  <target name="clean" description="remove all generated files">
    <ant inheritAll="false" antfile="third-party/java/emma-2.0.5312/build.xml" target="clean" />
    <delete dir="${build.dir}" />
  </target>

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

  <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" />
    </javac>
  </target>

  <target name="compile-abi-processor" depends="checkversion">
    <mkdir dir="${abi_processor.classes.dir}" />
    <javac srcdir="${abi_processor.src.dir}"
           destdir="${abi_processor.classes.dir}"
           debug="on"
           includeAntRuntime="no"
           >
      <compilerarg value="-Xlint:rawtypes" />
      <compilerarg value="-Xlint:unchecked" />
    </javac>
  </target>

  <target name="compile"
          depends="compile-testrunner, compile-abi-processor"
          description="compile Java source code">
    <ant inheritAll="false" antfile="third-party/java/emma-2.0.5312/build.xml" target="core.package" />
    <mkdir dir="${classes.dir}" />
    <javac destdir="${classes.dir}"
           classpathref="classpath"
           debug="on"
           deprecation="on"
           includeAntRuntime="no"
           >
      <src path="${src.dir}" />
      <src path="${aosp.src.dir}" />
      <exclude name="com/facebook/buck/cli/quickstart/**" />
      <exclude name="com/facebook/buck/java/abi/**" />
      <exclude name="com/facebook/buck/junit/**" />
      <compilerarg value="-Xlint:rawtypes" />
      <compilerarg value="-Xlint:unchecked" />
      <!-- Suppress the warning from implicitly compiling files that are not
           annotation processed. Not sure which files are the culprit -->
      <compilerarg value="-implicit:class" />
    </javac>
  </target>

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

  <path id="tests.classpath">
    <path refid="classpath" />
    <fileset dir="${lib.dir}" >
      <include name="cglib-nodep-2.2.jar" />
      <include name="easymock-3.0.jar" />
      <include name="junit-4.11.jar" />
      <include name="hamcrest-core-1.3.jar" />
      <include name="hamcrest-library-1.3.jar" />
      <include name="objenesis-1.2.jar" />
    </fileset>
    <pathelement location="${testclasses.dir}" />
    <pathelement location="${test.dir}" />
    <pathelement location="${abi_processor.classes.dir}" />
    <pathelement location="${testrunner.classes.dir}" />
  </path>

  <target name="compile-tests"
          depends="compile"
          >
    <mkdir dir="${testclasses.dir}" />
    <javac srcdir="${test.dir}"
           excludes="**/testdata/**"
           destdir="${testclasses.dir}"
           classpathref="tests.classpath"
           debug="on"
           deprecation="on"
           includeAntRuntime="no"
           >
      <compilerarg value="-Xlint:rawtypes" />
      <compilerarg value="-Xlint:unchecked" />
    </javac>
  </target>

  <target name="java-test"
          depends="compile-tests"
          description="runs the Java tests"
          >
    <junit failureproperty="hasFailingTests"
           showoutput="true"
           forkmode="perBatch">
      <sysproperty key="buck.path_to_emma_jar" value="${buck.path_to_emma_jar}" />
      <sysproperty key="buck.path_to_buck_py" value="${buck.path_to_buck_py}" />

      <!-- 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.java" />
          <exclude name="**/testdata/**" />
        </fileset>
      </batchtest>
      <classpath refid="tests.classpath" />
    </junit>
    <fail if="hasFailingTests" />
  </target>

  <target name="py-test" description="runs the Python tests">
    <exec executable="python" failonerror="true">
      <arg value="src/com/facebook/buck/parser/buck_test.py" />
    </exec>
  </target>

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

  <target name="lint">
    <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"/>
      </fileset>
      <fileset dir="${plugin.dir}">
        <include name="**/*.java"/>
      </fileset>
    </pmd>
  </target>

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

  <target name="javadoc" description="generates HTML documentation for Java code"
      depends="compile">
    <mkdir dir="${javadoc.dir}" />
    <javadoc destdir="${javadoc.dir}"
             protected="true"
             classpathref="tests.classpath"
             windowtitle="Buck"
             failonerror="true"
             >
      <fileset dir="${src.dir}"/>
      <fileset dir="${test.dir}">
        <exclude name="**/testdata/**" />
        <exclude name="**/BUCK" />
        <exclude name="**/*.properties"/>
      </fileset>
      <link href="http://docs.oracle.com/javase/7/docs/api/" />
      <link href="http://docs.guava-libraries.googlecode.com/git-history/v15.0/javadoc/" />
      <!-- The latest version of the javadocs is only for 4.10 -->
      <link href="http://junit-team.github.io/junit/javadoc/latest/" />
    </javadoc>
  </target>

  <target name="client" description="install nailgun buckd c client">
    <mkdir dir="${build.dir}" />
    <exec dir="${basedir}" executable="gcc">
      <arg line="-Wall -pedantic -O3 -o ${build.dir}/ng ${client.dir}/nailgun-client/ng.c" />
    </exec> 
  </target>

  <target name="all" depends="jar, test, javadoc, client" />
</project>
