<?xml version="1.0" encoding="UTF-8"?>
<project name="org.eclipse.uml2.doc" default="build.jars" basedir=".">

	<property file="${buildDirectory}/finalPluginsVersions.properties"/>

	<!-- Plug-in information.  This is a HACK.  Do not forget to update version numbers, etc.. -->
	<property name="pluginVersion" value="${org.eclipse.uml2.doc}"/>

	<property name="plugin" value="org.eclipse.uml2"/>
	<property name="docPlugin" value="org.eclipse.uml2.doc"/>

	<property name="filesToInclude" value="META-INF/**,about.html,about.ini,about.mappings,about.properties,modeling*.png,plugin.xml,plugin.properties,toc.xml,schema.css,topics_*.xml,index/**,images/**,tutorials/**,references/**"/>

	<!-- Compiler settings. -->
	<property name="javacFailOnError" value="false"/>
	<property name="javacDebugInfo" value="on"/>
	<property name="javacVerbose" value="true"/>
	<property name="javacSource" value="1.5"/>
	<property name="javacTarget" value="1.5"/>
	<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: ${plugin} 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}.jar" basedir="${temp.folder}/${docPlugin}_${pluginVersion}" 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}.">
		<!-- Execute a shell script that will create an ant javadoc script and then run it for us -->
		<exec executable="sh">
			<arg value="build/antJavadoc.sh"/>
			<arg value="${eclipse.home}/../eclipse"/>
		</exec>

		<!-- We don't have anything to index at this stage. -->
		<!-- <antcall target="build.index"/> -->

		<antcall target="convertSchemaToHtml"/>
	</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}"/>
		<copy todir="${destination.temp.folder}/${docPlugin}_${pluginVersion}" failonerror="true" overwrite="false">
			<fileset dir="${basedir}" includes="${filesToInclude}"/>
		</copy>
		<eclipse.versionReplacer 
			path="${destination.temp.folder}/${docPlugin}_${pluginVersion}" 
			version="${pluginVersion}"/>
	</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}.jar"/>
		<delete file="${plugin.destination}/${docPlugin}_${pluginVersion}.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}.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/>
		<delete dir="${temp.folder}"/>
	</target>

	<target name="convertSchemaToHtml">
		<property name="schema-destination" value="./references/extension-points" />
		<pde.convertSchemaToHTML manifest="../org.eclipse.uml2.uml/plugin.xml" destination="${schema-destination}" />
	</target>

</project>
