<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you 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.
-->
<project name="Ant - Common">
    <dirname property="Ant - Common.dir" file="${ant.file.Ant - Common}"/>
    <import file="${Ant - Common.dir}/macros.xml"/>

    <property environment="env"/>
    <property name="src.dir" value="src"/>
    <property name="dtd.dir" value="dtd"/>
    <property name="lib.dir" value="lib"/>
    <property name="build.dir" value="build"/>

    <!-- ================================================================== -->
    <!-- Removes all created files and directories                          -->
    <!-- ================================================================== -->

    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>

    <!-- ================================================================== -->
    <!-- Makes sure the needed directory structure is in place              -->
    <!-- ================================================================== -->

    <target name="prepare">
        <mkdir dir="${build.dir}/classes"/>
        <mkdir dir="${build.dir}/lib"/>
    </target>

    <target name="prepare-docs">
        <mkdir dir="${build.dir}/javadocs"/>
    </target>

    <available property="_src-available" file="${src.dir}"/>
    <fileset id="_src-extra-set" dir="." excludes="**"/>

    <target name="_src-available" if="_src-available">
        <fileset id="_src-extra-set" dir="${src.dir}">
            <include name="**/*.properties"/>
            <include name="**/*.groovy"/>
            <include name="**/*.xml"/>
            <include name="**/*.bsh"/>
            <include name="**/*.logic"/>
            <include name="**/*.js"/>
            <include name="**/*.js"/>
            <include name="**/*.jacl"/>
            <include name="**/*.py"/>
            <include name="META-INF/**"/>
        </fileset>
    </target>

    <target name="jar" depends="classes,_src-available">
        <jar jarfile="${build.dir}/lib/${name}.jar">
            <fileset dir="${build.dir}/classes"/>
            <fileset refid="_src-extra-set"/>
            <!-- now add the NOTICE and LICENSE files to allow the jar file to be distributed alone -->
            <zipfileset dir="${ofbiz.home.dir}" prefix="META-INF" includes="NOTICE,LICENSE"/>
        </jar>
    </target>

    <target name="all" depends="jar,docs"/>
</project>
