<?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
  -
  -   https://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" />

  <loadfile srcFile="${basedir}/../share/VERSION.txt" property="version">
    <filterchain>
      <striplinebreaks/>
    </filterchain>
  </loadfile>

  <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>
