<!-- Export a jar of .class files for the org.eclipse.jdt.debug.test Eclipse plugin
     along with other important plugin files to the "plugin-export" subdirectory
     of the target Eclipse installation -->
<project name="Export jdt.debug.tests" 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.jdt.debug.tests" />
	</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}" />
		
		<!-- Create the java debug tests jar -->
		<jar 
			jarfile="${dest}/javadebugtests.jar"
			basedir="bin"
			includes="org/**"
		/>
				
		<!-- Create the source zip -->
		<zip zipfile="${dest}/javadebugtestssrc.zip">
			<fileset dir="test plugin"/>
			<fileset dir="tests"/>
		</zip>
		
		<copy file="plugin.xml" todir="${dest}"/>
		<copy file=".classpath" todir="${dest}"/>
		<copy file="test.xml" todir="${dest}"/>
		<copy todir="${dest}/testprograms">
			<fileset dir="testprograms" />
		</copy>		
		<copy todir="${dest}/testjars">
			<fileset dir="testjars" />
		</copy>
		<copy todir="${dest}/testresources">
			<fileset dir="testresources" />
		</copy>				
	</target>
	
</project>
