<?xml version="1.0"?>

<!--
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied. See the License for the specific language governing permissions and limitations under the License.

This work is copyright by the author(s) and is part of a greater work collectively copyright by the
Groovy community. See the NOTICE.txt file distributed with this work for additional information.

Author : Paul King
$Revision: 5519 $ ($LastChangedBy: paulk $)
$Date: 2007-03-11 19:14:07 +1000 (Sun, 11 Mar 2007) $
-->

<project name="build-setup" default="" basedir="../..">

    <property name="bootstrapDirectory" location="bootstrap"/>
    <property name="sourceDirectory" value="src"/>
    <property name="wikiPdfDirectory" value="src"/>
    <property name="mainSourceDirectory" location="${sourceDirectory}/main"/>
    <property name="testSourceDirectory" value="${sourceDirectory}/test"/>
    <property name="toolsSourceDirectory" location="${sourceDirectory}/tools"/>
    <property name="examplesSourceDirectory" location="${sourceDirectory}/examples"/>
    
    <property name="targetDirectory" value="target"/>
    <property name="installDirectory" value="${targetDirectory}/install"/>
    <property name="cruiseReportRootDirectory" value="${targetDirectory}/root"/>
    <property name="stagingDirectory" value="${targetDirectory}/staging"/>
    <property name="docsDirectory" value="${targetDirectory}/html"/>
    <property name="mainClassesDirectory" value="${targetDirectory}/classes"/>
    <property name="testClassesDirectory" value="${targetDirectory}/test-classes"/>
    <property name="toolsClassesDirectory" value="${targetDirectory}/tools-classes"/>
    <property name="mainStubsDirectory" value="${targetDirectory}/stubs"/>
    <property name="testStubsDirectory" value="${targetDirectory}/test-stubs"/>
    
    <property name="examplesClassesDirectory" value="${targetDirectory}/examples-classes"/>
    <property name="instrumentedClassesDirectory" value="${targetDirectory}/instrumented-classes"/>
    <property name="reportsDirectory" value="${targetDirectory}/reports"/>
    <property name="targetLibDirectory" value="${targetDirectory}/lib"/>
    <property name="targetDistDirectory" value="${targetDirectory}/dist"/>
    
    <property name="antlrDirectory" value="${mainSourceDirectory}/org/codehaus/groovy/antlr"/>
    <property name="groovyParserDirectory" value="${antlrDirectory}/parser"/>
    <property name="javaParserDirectory" value="${antlrDirectory}/java"/>

    <property name="compileLibDirectory" value="${targetLibDirectory}/compile"/>
    <property name="testLibDirectory" value="${targetLibDirectory}/test"/>
    <property name="runtimeLibDirectory" value="${targetLibDirectory}/runtime"/>
    <property name="toolsLibDirectory" value="${targetLibDirectory}/tools"/>
    <property name="examplesLibDirectory" value="${targetLibDirectory}/examples"/>
    <property name="junitRawDirectory" value="${targetDirectory}/test-reports"/>
    <property name="junitReportsDirectory" value="${reportsDirectory}/junit"/>

    <macrodef name="antforked">
        <attribute name="target"/>
        <sequential>
            <java classname="org.apache.tools.ant.launch.Launcher" fork="true" maxmemory="256m" failonerror="true">
                <classpath refid="runtimePath"/>
                <arg value="@{target}"/>
            </java>
        </sequential>
    </macrodef>
    
</project>
