<!-- Export a jar of .class files for the org.eclipse.ant.ui Eclipse plug-in
     along with other important plugin files to the "plugin-export" subdirectory
     of the target Eclipse installation -->
<project name="Export antui" default="export" basedir="..">

	<!-- Set the timestamp and important properties -->
	<target name="init">
		<tstamp/>
		<property name="destdir" value="../../plugin-export" />
		<property name="dest"  value="${destdir}/org.eclipse.ant.ui_3.0.0" />
	</target>

	<!-- Create the jar of .class files, and copy other important files to export dir -->
	<target name="export" depends="init">
		<mkdir dir="${destdir}" />
		<delete dir="${dest}" />
		<mkdir dir="${dest}" />
		<delete dir="${dest}/lib"/>
		<mkdir dir="${dest}/lib"/>
		<jar jarfile="${dest}/antui.jar">
			<fileset dir="bin">
				<exclude name="org/eclipse/ant/ui/internal/antsupport/*"/>
				<exclude name="org/eclipse/ant/ui/internal/antsupport/inputhandler/*"/>
				<exclude name="org/eclipse/ant/ui/internal/antsupport/logger/*"/>
			</fileset>
		</jar>
		<!-- Create the source zip -->
		<zip zipfile="${dest}/antuisrc.zip">
			<fileset dir="Ant Tools Support"/>
			<fileset dir="Ant Runner Support"/>
			<fileset dir="Ant Editor"/>
		</zip>
		<copy file="plugin.xml" todir="${dest}"/>
		<copy file="plugin.properties" todir="${dest}"/>
		<copy file=".classpath" todir="${dest}"/>
		<copy file=".options" todir="${dest}"/>
		<copy file="lib/antrunner.jar" todir="${dest}/lib"/>
		<copy todir="${dest}/icons">
			<fileset dir="icons" />
		</copy>		
	</target>
	
</project>
