<!-- 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="org.eclipse.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>
