<?xml version="1.0"?>
<!--
  - 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="doc" default="doc" basedir=".">

  <!-- Load user's default properties. -->
  <property file="${user.home}/build.properties" />

  <loadresource property="version">
    <file file="${basedir}/../share/VERSION.txt"/>
  </loadresource>

  <property name="build.dir" value="../build/avro-doc-${version}"/>

  <target name="doc" depends="forrest.check" description="Generate forrest-based documentation. To use, specify -Dforrest.home=&lt;base of Apache Forrest installation&gt; on the command line." if="forrest.home">
    <mkdir dir="${build.dir}"/>
    <echo  file="../build/avro.ent" append="false">
      &lt;!ENTITY AvroVersion "${version}"&gt;
    </echo>
    <exec executable="${forrest.home}/bin/forrest" failonerror="true">
      <arg value="-Dproject.configfile=${basedir}/src/cli.xconf"/>
      <arg value="-Dproject.content-dir=src"/>
      <arg value="-Dproject.site=../${build.dir}/"/>
    </exec>
    <copy todir="${build.dir}/examples">
      <fileset dir="examples"/>
    </copy>
  </target>

  <target name="forrest.check" unless="forrest.home">
    <fail message="'forrest.home' is not defined. Please pass -Dforrest.home=&lt;base of Apache Forrest installation&gt; to Ant on the command-line." />
  </target>

  <target name="clean" description="Delete build files, and their directories">
    <delete dir="${basedir}/build"/>
  </target>

</project>
