<!--
  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 default="jar" xmlns:ivy="antlib:fr.jayasoft.ivy.ant">
	<property name="project.name" value="org.apache.directory.ldapstudio.browser.help" />
	<property name="project.version" value="0.6.0" />

	<property name="project.output" value="${basedir}/target" />
	<property name="project.build" value="${project.output}/build" />
	<property name="project.html" value="${project.output}/html" />
	<property name="project.src" value="${basedir}/src/main/resources" />

	<property name="lib.dir" value="lib" />

	<property name="repository.dir" location="../dependencies/externals/"/>

	<!-- Configuring Ivy (Needs to be AFTER the $repository.dir declaration) -->
	<ivy:configure file="../tools/ivyconf.xml"/>

	<!-- ================================== -->
	<!--               RESOLVE              -->
	<!-- ================================== -->
	<target name="resolve" description="--> retreive dependencies with ivy">
		<ivy:retrieve/>

		<mkdir dir="${basedir}/docbook-xml" />
		<unzip dest="${basedir}/docbook-xml">
			<fileset dir="${basedir}/lib">
				<include name="**/docbook-xml*.zip"/>
			</fileset>
		</unzip>

		<unzip dest="${basedir}">
			<fileset dir="${basedir}/lib">
				<include name="**/docbook-xsl*.zip"/>
			</fileset>
		</unzip>
		<property name="fromregexp" value="^(docbook-xsl-[^/]+)/(.*)" />
		<property name="toregexp" value="docbook-xsl/\2" />
		<move todir="${basedir}">
			<fileset dir="${basedir}">
				<include name="docbook-xsl-*/**"/>
			</fileset>
			<!--<mapper type="regexp" from="${fromregexp}" to="${toregexp}" />-->
			<regexpmapper from="${fromregexp}" to="${toregexp}" handledirsep="true" />
		</move>
		<delete includeemptydirs="true">
			<fileset dir="${basedir}">
				<include name="docbook-xsl-*"/>
			</fileset>
		</delete>


	</target>

	<!-- ================================== -->
	<!--           ECLIPSE HELP             -->
	<!-- ================================== -->
	<target name="eclipse-help" depends="resolve" description="Generates the eclipse help">
		<mkdir dir="${project.build}" />
		
		<xslt in="${project.src}/0_index.xml" out="${project.build}/index.html" style="${basedir}/docbook-xsl/eclipse/eclipse.xsl">

			<classpath location="lib/xalan-2.7.0.jar" />

			<param name="manifest.in.base.dir" expression="0" />
			<param name="base.dir" expression="html/" />

			<param name="html.stylesheet" expression="css/book.css" />
			<param name="table.cell.borders.thickness" expression="1" />
			<!-- <param name="table.borders.with.css" expression="1" /> -->

			<param name="generate.section.toc.level" expression="5" />
			<param name="toc.max.depth" expression="1" />

			<param name="chunk.first.sections" expression="1" />
			<param name="chunk.section.depth" expression="5" />

			<param name="chunk.fast" expression="1" />
			<param name="chunk.separate.lots" expression="1" />
			<!--<param name="chunk.tocs.and.lots" expression="1" />-->

			<param name="ulink.target" expression="_self" />
			<param name="suppress.navigation" expression="1" />
			<param name="html.cleanup" expression="1" />
			<param name="html.cellpadding" expression="3" />
			<param name="use.id.as.filename" expression="1" />
			<param name="chapter.autolabel" expression="0" />
			<param name="section.autolabel" expression="0" />

			<outputproperty name="method" value="xml" />
			<outputproperty name="standalone" value="yes" />
			<outputproperty name="encoding" value="iso8859_1" />
			<outputproperty name="indent" value="es" />
		</xslt>
		
		<copy todir="${project.build}" overwrite="true">
			<fileset dir="${basedir}">
				<include name="contexts.xml" />
				<include name="plugin.xml" />
				<include name="plugin.properties" />
				<include name="about.html" />
			</fileset>
		</copy>
		<mkdir dir="${project.build}/META-INF" />
		<copy todir="${project.build}/META-INF">
			<fileset dir="${basedir}/META-INF">
				<include name="**" />
			</fileset>
		</copy>
		<mkdir dir="${project.build}/about_files" />
		<copy todir="${project.build}/about_files">
			<fileset dir="${basedir}/about_files">
				<include name="**" />
			</fileset>
		</copy>

		<mkdir dir="${project.build}/html" />
		<copy todir="${project.build}/html">
			<fileset dir="${basedir}/resources">
				<include name="**" />
			</fileset>
		</copy>

		<tstamp>
			<format pattern="yyyy-MMM-dd, HH:mm 'GMT'Z" property="timestamp" locale="en" />
		</tstamp>
		<echo message="${project.name}-${project.version} compiled ${timestamp} by ${user.name}" file="${project.build}/compile.timestamp" />
	</target>

	<!-- ================================== -->
	<!--           STATIC HTML              -->
	<!-- ================================== -->
	<target name="static-html" depends="resolve" description="Generates the static html">
		<mkdir dir="${project.html}" />
		<copy todir="${project.html}">
			<fileset dir="${basedir}/resources">
				<include name="**" />
			</fileset>
		</copy>

		<xslt in="${project.src}/0_index.xml" out="${project.html}/index.html" style="${basedir}/docbook-xsl/html/chunk.xsl">

			<classpath location="lib/xalan-2.7.0.jar" />

			<param name="manifest.in.base.dir" expression="0" />
			<!-- <param name="base.dir" expression="html/" /> -->

			<param name="html.stylesheet" expression="css/book.css" />
			<param name="table.cell.borders.thickness" expression="1" />
			<!-- <param name="table.borders.with.css" expression="1" /> -->

			<param name="generate.section.toc.level" expression="5" />
			<param name="toc.max.depth" expression="3" />

			<param name="chunk.first.sections" expression="1" />
			<param name="chunk.section.depth" expression="5" />

			<param name="chunk.fast" expression="1" />
			<param name="chunk.separate.lots" expression="1" />
			<!--<param name="chunk.tocs.and.lots" expression="1" />-->

			<param name="ulink.target" expression="_self" />
			<param name="suppress.navigation" expression="0" />
			<param name="html.cleanup" expression="1" />
			<param name="html.cellpadding" expression="3" />
			<param name="use.id.as.filename" expression="1" />
			<param name="chapter.autolabel" expression="0" />
			<param name="section.autolabel" expression="0" />

			<outputproperty name="method" value="xml" />
			<outputproperty name="standalone" value="yes" />
			<outputproperty name="encoding" value="iso8859_1" />
			<outputproperty name="indent" value="es" />
		</xslt>


		<tstamp>
			<format pattern="yyyy-MMM-dd, HH:mm 'GMT'Z" property="timestamp" locale="en" />
		</tstamp>
		<echo message="${project.name}-${project.version} compiled ${timestamp} by ${user.name}" file="${project.html}/compile.timestamp" />
	</target>


	<!-- ================================== -->
	<!--              JAR                   -->
	<!-- ================================== -->
	<target name="jar" description="Creates jar file" depends="eclipse-help">
		<jar destfile="${project.output}/${project.name}_${project.version}.jar" manifest="${project.build}/META-INF/MANIFEST.MF">
			<fileset dir="${project.build}" excludes="compile.timestamp" />
			<include name="META-INF/**"/>
		</jar>
	</target>

	<!-- ================================== -->
	<!--               CLEAN                -->
	<!-- ================================== -->
	<target name="clean" description="Deletes any generated file (javadoc, classes, jars, distribution)">
		<delete includeemptydirs="true">
			<fileset dir="${basedir}">
				<exclude name=".classpath"/>
				<exclude name=".project"/>
				<exclude name="about.html"/>
				<exclude name="about_files**"/>
				<exclude name="build.properties"/>
				<exclude name="build-eclipse.xml"/>
				<exclude name="build-html.xml"/>
				<exclude name="build.xml"/>
				<exclude name="ivy.xml"/>
				<exclude name="plugin.properties"/>
				<exclude name="plugin.xml"/>
				<exclude name="contexts.xml"/>
				<exclude name="docbook/**"/>
				<exclude name="src/**" />
				<exclude name="resources/**" />
				<exclude name="META-INF/**"/>
			</fileset>
		</delete>
	</target>
</project>
