<?xml version="1.0" encoding="UTF-8"?>
<project name="org.eclipse.xsd.doc" default="build.jars" basedir=".">
	
	<!-- Plug-in information.  This is a HACK.  Do not forget to update version numbers, etc.. -->
	<property name="pluginVersion" value="2.4.0"/>
	<property name="docPlugin" value="org.eclipse.xsd.doc"/>
	
	<property name="filesToInclude" value="META-INF/**,about.*,modeling*.png,plugin.*,doc.zip,toc*.xml,topics_*.xml,index/**,images/**,tutorials/**,references/**,css/**"/>

	<!-- Compiler settings. -->
	<property name="javacFailOnError" value="false"/>
	<property name="javacDebugInfo" value="on"/>
	<property name="javacVerbose" value="true"/>
	<property name="javacSource" value="1.4"/>
	<property name="javacTarget" value="1.4"/>
	<property name="compilerArg" value=""/>
	<path id="path_bootclasspath">
		<fileset dir="${java.home}/lib">
			<include name="*.jar"/>
		</fileset>
	</path>
	<property name="bootclasspath" refid="path_bootclasspath"/>
	<property name="bundleJavacSource" value="${javacSource}"/>
	<property name="bundleJavacTarget" value="${javacTarget}"/>
	<property name="bundleBootClasspath" value="${bootclasspath}"/>
	<property name="basews" value="${ws}"/>
	<property name="baseos" value="${os}"/>
	<property name="basearch" value="${arch}"/>
	<property name="basenl" value="${nl}"/>

	<target name="init" depends="properties">
		<condition property="pluginTemp" value="${buildTempFolder}/plugins">
			<isset property="buildTempFolder"/>
		</condition>
		<property name="pluginTemp" value="${basedir}"/>
		<condition property="build.result.folder" value="${pluginTemp}/${docPlugin}">
			<isset property="buildTempFolder"/>
		</condition>
		<property name="build.result.folder" value="${basedir}"/>
		<property name="temp.folder" value="${basedir}/temp.folder"/>
		<property name="plugin.destination" value="${basedir}"/>
	</target>

	<target name="properties" if="eclipse.running">
		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
	</target>

	<target name="build.update.jar" depends="init" description="Build the plug-in: ${docPlugin} for an update site.">
		<delete dir="${temp.folder}"/>
		<mkdir dir="${temp.folder}"/>
		<antcall target="build.jars"/>
		<antcall target="gather.bin.parts">
			<param name="destination.temp.folder" value="${temp.folder}/"/>
		</antcall>
		<zip destfile="${plugin.destination}/${docPlugin}_${pluginVersion}.${forceContextQualifier}.jar" basedir="${temp.folder}/${docPlugin}_${pluginVersion}.${forceContextQualifier}" filesonly="false" whenempty="skip" update="false"/>
		<delete dir="${temp.folder}"/>
	</target>

	<target name="build.jars" depends="init" description="Build all the jars for the plug-in: ${docPlugin}.">
	 	<macrodef name="echo-timestamp"><sequential><antcall target="-timestamp" inheritAll="false" /></sequential></macrodef>
		<echo-timestamp />
		<property name="eclipseDir" location="../.."/>
		<chmod perm="754" file="build/antJavadoc.sh"/>
	        <exec executable="bash" dir="build"><arg line="./antJavadoc.sh ${eclipseDir}"/></exec>
		<echo-timestamp />
		<antcall target="build.index"/>
		<echo-timestamp />
	</target>

	<target name="build.index" depends="init" description="Builds search index for the plug-in" if="eclipse.running">
		<help.buildHelpIndex manifest="plugin.xml" destination="."/>
	</target>

	<target name="build.sources" depends="init">
	</target>

	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
		<mkdir dir="${destination.temp.folder}/${docPlugin}_${pluginVersion}.${forceContextQualifier}"/>
		<copy todir="${destination.temp.folder}/${docPlugin}_${pluginVersion}.${forceContextQualifier}" failonerror="true" overwrite="false">
			<fileset dir="${basedir}" includes="${filesToInclude}"/>
		</copy>
		<eclipse.versionReplacer 
			path="${destination.temp.folder}/${docPlugin}_${pluginVersion}.${forceContextQualifier}" 
			version="${pluginVersion}.${forceContextQualifier}"/>
	</target>

	<target name="build.zips" depends="init">
	</target>

	<target name="gather.sources" depends="init" if="destination.temp.folder">
	</target>

	<target name="gather.logs" depends="init" if="destination.temp.folder">
	</target>

	<target name="clean" depends="init" description="Clean the plug-in: ${docPlugin} of all the zips, jars and logs created.">
		<delete file="${plugin.destination}/${docPlugin}_${pluginVersion}.${forceContextQualifier}.jar"/>
		<delete file="${plugin.destination}/${docPlugin}_${pluginVersion}.${forceContextQualifier}.zip"/>
		<delete dir="${temp.folder}"/>
	</target>

	<target name="zip.plugin" depends="init" description="Create a zip containing all the elements for the plug-in: ${docPlugin}.">
		<delete dir="${temp.folder}"/>
		<mkdir dir="${temp.folder}"/>
		<antcall target="build.jars"/>
		<antcall target="build.sources"/>
		<antcall target="gather.bin.parts">
			<param name="destination.temp.folder" value="${temp.folder}/"/>
		</antcall>
		<antcall target="gather.sources">
			<param name="destination.temp.folder" value="${temp.folder}/"/>
		</antcall>
		<delete>
			<fileset dir="${temp.folder}" includes="**/*.bin.log"			/>
		</delete>
		<zip destfile="${plugin.destination}/${docPlugin}_${pluginVersion}.${forceContextQualifier}.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/>
		<delete dir="${temp.folder}"/>
	</target>

	<!-- echo timestamp into log: format can be "MM/dd/yyyy hh:mm:ss aa" or "hh:mm:ss" -->
	<target name="-timestamp"><tstamp><format property="-timestamp" pattern="hh:mm:ss"/></tstamp><echo>${-timestamp}</echo></target>

</project>
