<?xml version="1.0" encoding="utf-8"?>
<!-- 
/**
 * qetest.xml
 * Ant 1.3.x build script for compiling the qetest 
 * independent testing framework.  
 * 
 * Closely related to build.xml for Xalan testing.
 *
 * @author shane_curcuru@lotus.com
 * @see build.bat
 */
-->
<project name="qetest" default="jar" basedir=".">

    <!-- Specific locations related to building code -->
    <property name="test.src.dir" value="java/src"/>
    <property name="test.root" value="org/apache/qetest/"/>
    <property name="test.build.dir" value="java/build"/>
    
    <!-- Names/locations of .jar files we build -->
    <property name="qetest.jar.name" value="qetest.jar"/>
    <property name="qetest.jar" value="${test.build.dir}/${qetest.jar.name}"/>

    <target name="init.build" 
        description="Prepare build output tree, copy prebuilts">
        <mkdir dir="${test.build.dir}" />
    </target>

    <!-- Compile the independent test framework and the custom 
         Ant task for running tests.
    -->
    <target name="compile.qetest" depends="init.build"
        description="Compile base qetest files and custom task">
        <javac srcdir="${test.src.dir}" 
               destdir="${test.build.dir}" 
               includes="${test.root}*.java" 
               debug="${debug}" />
        <!-- Compile the custom Ant task used by Xalan tests; this is 
             actually independent too, and should probably be moved into
             just the qetest package.  This gets compiled here so that it 
             can be used in the build.xml for <xalantest> definition.
        -->
        <javac srcdir="${test.src.dir}" 
               destdir="${test.build.dir}" 
               includes="${test.root}xsl/XSLTestAntTask.java" 
               debug="${debug}" />
    </target>

    <!-- Jar up the files; only requires qetest files, but the 'all'
         target below also compiles the custom Ant task too.
    -->
    <target name="jar" depends="compile.qetest"
        description="Jar base qetest files; no Xalan dependencies">
        <jar jarfile="${qetest.jar}" 
             basedir="${test.build.dir}" 
             includes="${test.root}**" />
    </target>

    <target name="clean"
        description="Clean up the compiled tests">
        <delete dir="${test.build.dir}"/>
    </target>

</project>
