<?xml version="1.0"?>
<project name="scene-lib" default="bin">

    <property environment="env"/>

    <macrodef name="echo-fileset">
        <attribute name="filesetref" />
        <sequential>
            <pathconvert pathsep="
" property="@{filesetref}.echopath">
                <path>
                    <fileset refid="@{filesetref}" />
                </path>
            </pathconvert>
            <echo>   ------- echoing fileset @{filesetref} -------</echo>
            <echo>${@{filesetref}.echopath}</echo>
        </sequential>
    </macrodef>

    <taskdef resource="net/sf/antcontrib/antcontrib.properties">
      <classpath>
        <pathelement location="ant-contrib.jar" />
      </classpath>
    </taskdef>

    <target name="init-properties">
        <condition property="exists.build.properties">
            <available file="build.properties"/>
        </condition>
        <fail
            unless="exists.build.properties"
            message="Local build.properites file is missing."/>

        <property file="build.properties"/>

        <fail
            unless="global.build.properties"
            message="Local build.properties file did not define global buildfile in property global.build.properties"/>
        <condition property="exists.global.build.properties">
            <available file="${global.build.properties}"/>
        </condition>
        <fail
            unless="exists.global.build.properties"
        message="File ${global.build.properties} file not found."/>
        <property file="${global.build.properties}"/>

        <fail
           unless="user.build.properties"
            message="Local build.properties file did not define global buildfile in property user.build.properties"/>
        <condition property="exists.user.build.properties">
            <available file="${user.build.properties}"/>
        </condition>
        <fail
            unless="exists.user.build.properties"
            message="File ${user.build.properties} file not found."/>
        <property file="${user.build.properties}"/>

    </target>

    <target name="init-dependencies"
            depends="init-properties">
        <!-- I should reinstate this after figuring out how to make
        it remake only when necessary, not always.  (I should
        probably do that outside ASM rather than modifying ASM itself?)
        And, supply -Dproduct.noshrink to asmx ant command, at least when
        testing.
        -->
        <!--
        <ant dir="${asmx}" inheritAll="false" target="bin"/>
        -->
        <!-- Next 2 lines only for repository version. -->
        <!--
        <ant dir="${annotations-compiler}" antfile="make/build.xml" inheritAll="false" target="build"/>
        <ant dir="${checkers}" inheritAll="false" target="build"/>
        -->
    </target>

    <target name="init-paths">
        <path id="sourcepath">
            <pathelement location="src"/>
        </path>
        <path id="testpath">
            <pathelement location="test/annotations/tests/executable"/>
            <pathelement location="test/annotations/tests/classfile/foo"/>
        </path>

        <fileset dir="." id="source.files.java">
            <include name="src/**/*.java"/>
            <exclude name="**/.svn"/>
            <exclude name="**/package-info.java"/>
        </fileset>

        <fileset dir="." id="source.files.java.nopackageinfo">
            <include name="src/**/*.java"/>
            <exclude name="**/.svn"/>
            <exclude name="**/package-info.java"/>
        </fileset>

        <fileset dir="." id="source.files.java.packageinfo">
            <include name="**/package-info.java"/>
        </fileset>

        <fileset dir="." id="source.files.non-java">
            <include name="src/**/*"/>
            <exclude name="**/.svn"/>
            <exclude name="**/*.java"/>
        </fileset>

        <path id="javadoc-sourcepath">
            <pathelement location="src"/>
        </path>

        <path id="libpath">
            <pathelement location="${asmx}/bin"/>
            <pathelement location="${junit}"/>
            <pathelement location="${annotation-tools}/annotation-file-utilities/lib/plume-core.jar"/>
            <pathelement location="${annotation-tools}/annotation-file-utilities/lib/guava-20.0.jar"/>
            <!-- remainder only for repository version -->
            <pathelement location="${annotations-compiler}/dist/lib/javac.jar"/>
            <pathelement location="${annotations-compiler}/dist/lib/javap.jar"/>
            <pathelement location="bin"/>
        </path>
    </target>

    <target name="init" depends="init-properties, init-dependencies, init-paths"/>

    <target name="bin-clean">
        <delete dir="bin"/>
    </target>

    <target name="bin-check-uptodate" depends="init">
        <uptodate property="source.files.non-java.uptodate">
            <srcfiles refid="source.files.non-java"/>
            <mapper type="glob" from="src/*" to="bin/*"/>
        </uptodate>

        <uptodate property="source.files.java.nopackageinfo.uptodate">
            <srcfiles refid="source.files.java.nopackageinfo"/>
            <mapper type="glob" from="src/*.java" to="bin/*.class"/>
        </uptodate>

        <!-- I want to say that package-info.java does not force
        recompilation if it is older than all source files in its own
        package. -->
        <uptodate property="source.files.java.packageinfo.uptodate" targetfile="bin">
            <srcfiles refid="source.files.java.packageinfo"/>
        </uptodate>

        <condition property="bin.uptodate">
          <and>
            <isset property="source.files.non-java.uptodate"/>
            <isset property="source.files.java.nopackageinfo.uptodate"/>
            <isset property="source.files.java.packageinfo.uptodate"/>
          </and>
        </condition>

        <!-- These print "true" if set and the property name in curly braces, such as "${source.files.java.nopackageinfo.uptodate}", if not set. -->
        <echo message="source.files.non-java.uptodate: ${source.files.non-java.uptodate}"/>
        <echo message="source.files.java.nopackageinfo.uptodate: ${source.files.java.nopackageinfo.uptodate}"/>
        <echo message="source.files.java.packageinfo.uptodate: ${source.files.java.packageinfo.uptodate}"/>
        <echo message="bin.uptodate: ${bin.uptodate}"/>
    </target>

    <target name="bin" depends="init, bin-check-uptodate" unless="bin.uptodate">
        <echo message="Running bin"/>
        <mkdir dir="bin"/>
        <!-- Copy non-java files to bin.  These are mostly .jaif files. -->
        <copy todir="bin">
            <fileset dir="src" excludes="**/*.java"/>
            <fileset dir="test" excludes="**/*.java"/>
        </copy>
        <javac
               destdir="bin"
               debug="true"
               classpathref="libpath"
               classpath="${libpath}"
               includeantruntime="false"
               fork="true"
               executable="${annotations-compiler}/dist/bin/javac">
            <src refid="sourcepath"/>
            <src refid="testpath"/>
            <!-- To prevent a cyclic dependency with the Checker
                 Framework, ignore type annotations in comments here.
                 A separate target could be added to check the qualifiers
                 and have them in the generated code. -->
            <compilerarg value="-XDTA:noannotationsincomments"/>
            <compilerarg value="-Xlint:-options"/>
            <compilerarg value="-Werror"/>
            <compilerarg value="-version"/>
            <!-- Make sure we only have Java 7 source code and generate Java 7 bytecode. -->
            <compilerarg value="-source"/>
            <compilerarg value="7"/>
            <compilerarg value="-target"/>
            <compilerarg value="7"/>
            <classpath refid="libpath"/>
            <!-- TODO: how can we include just these two files in testpath? -->
            <compilerarg value="test/annotations/tests/classfile/AnnotationsTest.java"/>
            <compilerarg value="test/annotations/tests/classfile/AnnotationVerifier.java"/>
        </javac>
<!--
       <pathconvert property="libpath" refid="libpath"/>
       <pathconvert property="source.files.java.spaceseparated" refid="source.files.java" pathsep=" "/>
        <exec executable="javac" failonerror="true">
          <arg value="-version"/>
          <arg value="-d"/>
          <arg value="bin"/>
          <arg value="-g"/>
          <arg value="-cp"/>
          <arg value="${libpath}"/>
          <arg line="source.files.java.spaceseparated"/>
        </exec>
-->
    </target>

    <target name="test-scene-lib" depends="init, bin">
        <mkdir dir="reports"/>
        <junit printsummary="withOutAndErr" showoutput="true" fork="yes" dir="." haltonerror="yes" haltonfailure="yes">
            <classpath refid="libpath"/>
            <formatter type="plain"/>
            <test name="annotations.tests.executable.TestSceneLib" todir="reports"/>
            <assertions>
              <enable/>
            </assertions>
        </junit>
    </target>

    <target name="test-classfile" depends="init, bin">
        <mkdir dir="reports"/>
        <junit printsummary="withOutAndErr" showoutput="true" fork="yes" dir="." haltonerror="yes" haltonfailure="yes">
            <classpath refid="libpath"/>
            <formatter type="plain"/>
            <test name="annotations.tests.classfile.AnnotationsTest" todir="reports"/>
            <assertions>
              <enable/>
            </assertions>
        </junit>
    </target>

    <target name="test-example" depends="init, bin">
        <!-- Working directory is ignored when same JVM is used.  That means
             that the relative path for ${scene-lib} works only if this target
             is invoked from the same directory as the build.xml file appears
             in.  We can fix the java task by adding this:
              fork="true"
              dir="${scene-lib}/src/annotations/tests"
             but there are other uses of ${scene-lib} in this target.
        -->
        <java classname="annotations.tests.executable.Example"
              output="${scene-lib}/test/annotations/tests/executable/example-stdout.jaif"
              classpathref="libpath">
            <arg value="${scene-lib}/test/annotations/tests/executable/example-input.jaif" />
            <arg value="foo.Bar" />
            <arg value="${scene-lib}/test/annotations/tests/executable/example-output.jaif" />
        </java>
        <condition property="example.output.matches">
            <filesmatch file1="${scene-lib}/test/annotations/tests/executable/example-output.jaif.goal"
                        file2="${scene-lib}/test/annotations/tests/executable/example-output.jaif"/>
        </condition>
        <!-- Debugging output in case I don't have access to the filesystem. -->
        <if>
            <isfalse value="${example.output.matches}"/>
            <then>
                <exec executable="cat">
                  <arg value="${scene-lib}/test/annotations/tests/executable/example-output.jaif.goal"/>
                  <arg value="${scene-lib}/test/annotations/tests/executable/example-output.jaif"/>
                </exec>
            </then>
        </if>
        <fail unless="example.output.matches"
            message="In ${scene-lib}/test/annotations/tests/executable/, file example-output.jaif does not match goal."/>
        <condition property="example.stdout.matches">
            <filesmatch file1="${scene-lib}/test/annotations/tests/executable/example-stdout.jaif.goal"
                        file2="${scene-lib}/test/annotations/tests/executable/example-stdout.jaif"/>
        </condition>
        <fail unless="example.stdout.matches"
            message="In ${scene-lib}/test/annotations/tests/executable/, file example-stdout.jaif does not match goal."/>

    </target>

    <target name="test-clean">
        <delete dir="reports"/>
    </target>

    <target name="test" depends="test-scene-lib, test-classfile, test-example"
       description="Run tests"/>
    <target name="clean" depends="bin-clean, javadoc-clean, test-clean"
       description="Remove generated files"/>

    <target name="javadoc-clean">
        <delete dir="javadoc"/>
    </target>

    <target name="javadoc" depends="javadoc-clean, init"
       description="Generate Javadoc API documentation">
        <javadoc sourcepathref="javadoc-sourcepath"
                classpathref="libpath"
                packagenames="*"
                excludepackagenames=""
                Overview="overview.html"
                destdir="javadoc"
                access="public"
                noqualifier="annotations:annotations.el:annotations.field:annotations.io:annotations.io.classfile:annotations.util:annotations.util.coll:java.lang"
		failonerror="true"
                />
    </target>

    <target name="test-package" depends="bin">
        <property name="test-package" value="scene-lib-test"/>
        <mkdir dir="${test-package}"/>
        <mkdir dir="${test-package}/src"/>
        <copy todir="${test-package}/src">
            <fileset dir="src" excludes="**/.svn"/>
        </copy>
        <jar destfile="${test-package}/deps.jar">
            <fileset dir="${asmx}/bin" includes="org/**"/>
        </jar>
        <zip destfile="${test-package}.zip">
            <zipfileset dir="${test-package}" prefix="${test-package}"/>
        </zip>
        <delete dir="${test-package}"/>
    </target>

    <!-- = = = = = = = = = = = = = = = = =
         macrodef: echopath
         Use as:    <echopath pathid="mypath"/>
         = = = = = = = = = = = = = = = = = -->
    <macrodef name="echopath">
      <attribute name="pathid"/>
      <sequential>
        <property name="line.pathprefix" value="| |-- "/>
        <!-- get given path in a printable form -->
        <pathconvert pathsep="${line.separator}${line.pathprefix}"
             property="echo.@{pathid}"
             refid="@{pathid}">
        </pathconvert>
        <echo>Path @{pathid}</echo>
        <echo>${line.pathprefix}${echo.@{pathid}}</echo>
      </sequential>
    </macrodef>

  <target name="etags" depends="tags">
  </target>
  <target name="tags" description="Create Emacs TAGS table">
    <exec executable="/bin/sh" failonerror="true">
      <arg value="-c"/>
      <arg value="etags `find -name '*.java' | sort-directory-order`"/>
    </exec>
  </target>

</project>
