<project default="usage" basedir=".">
	<property name="eclipse.dir" 
		value="/opt/uframe-eclipse" />
	<property name="build.os"
		value="linux" />
	<property name="build.ws"
		value="gtk" />
	<property name="build.arch"
		value="x86" />
	<!-- Copy the zip file that is produced to this location. -->
	<property name="destination.dir"
		value="" />
	
	<target name="usage">
		<echo 
			message="usage: ant -f ${basedir}/build.xml [alertviz] [cave]" />
	</target>
	
	<target name="init">
		<antcall target="clean" />
		
		<exec executable="/usr/bin/find"
		outputproperty="launcher.jar">
			<arg value="${eclipse.dir}/plugins" />
			<arg value="-name" />
			<arg value="org.eclipse.equinox.launcher_*.jar" />
		</exec>
		
		<exec executable="/usr/bin/find"
		outputproperty="pde.dir">
			<arg value="${eclipse.dir}/plugins" />
			<arg value="-name" />
			<arg value="org.eclipse.pde.build_*" />
		</exec>
	</target>
	
	<target name="clean">
		<if>
			<available file="${basedir}/cave/tmp"
			type="dir" />
			<then>
				<delete includeemptydirs="true">
					<fileset dir="${basedir}/cave/tmp" />
				</delete>
			</then>
		</if>
		
		<if>
			<available file="${basedir}/alertviz/tmp"
			type="dir" />
			<then>
				<delete includeemptydirs="true">
					<fileset dir="${basedir}/alertviz/tmp" />
				</delete>
			</then>
		</if>
	</target>

	<target name="cave" depends="init">
		<java
			classname="org.eclipse.core.launcher.Main"
			fork="true"
			failonerror="true">
			
			<arg value="-application" />
			<arg value="org.eclipse.ant.core.antRunner" />
			<arg value="-buildfile" />
			<arg value="${pde.dir}/scripts/productBuild/productBuild.xml" />
			<arg value="-DbaseLocation=${eclipse.dir}" />
			<arg value="-Dbuilder=${basedir}/cave" />
			<arg value="-DbuildDirectory=${basedir}/cave/tmp" />
			<arg value="-Dbase=${basedir}/cave" />
			<arg value="-Dconfigs=${build.os},${build.ws},${build.arch}" />
			
			<classpath>
				<pathelement 
					location="${launcher.jar}" />
			</classpath>
		</java>
		
		<if>
			<equals arg1="${destination.dir}" arg2="" />
			<then>
				<echo message="INFO: The Destination Directory Has Not Been Set." />
			</then>
			<else>
				<copy todir="${destination.dir}" 
					file="${basedir}/cave/tmp/I.CAVE/CAVE-${build.os}.${build.ws}.${build.arch}.zip" 
					verbose="true" />
			</else>
		</if>
	</target>
		
	<target name="alertviz" depends="init">
		<java
			classname="org.eclipse.core.launcher.Main"
			fork="true"
			failonerror="true">
			
			<arg value="-application" />
			<arg value="org.eclipse.ant.core.antRunner" />
			<arg value="-buildfile" />
			<arg value="${pde.dir}/scripts/productBuild/productBuild.xml" />
			<arg value="-DbaseLocation=${eclipse.dir}" />
			<arg value="-Dbuilder=${basedir}/alertviz" />
			<arg value="-DbuildDirectory=${basedir}/alertviz/tmp" />
			<arg value="-Dbase=${basedir}/alertviz" />
			<arg value="-Dconfigs=${build.os},${build.ws},${build.arch}" />
			
			<classpath>
				<pathelement 
					location="${launcher.jar}" />
			</classpath>
		</java>
		
		<if>
			<equals arg1="${destination.dir}" arg2="" />
			<then>
				<echo message="INFO: The Destination Directory Has Not Been Set." />
			</then>
			<else>
				<copy todir="${destination.dir}" 
					file="${basedir}/alertviz/tmp/I.AlertViz/AlertViz-${build.os}.${build.ws}.${build.arch}.zip" 
					verbose="true" />
			</else>
		</if>
	</target>
	
	<taskdef resource="net/sf/antcontrib/antlib.xml" 
		classpath="${basedir}/lib/ant/ant-contrib-1.0b3.jar" />
</project>