<?xml version="1.0"?>
<!-- ====================================================================== 
     ANT script to build org.eclispe.ohf.stem.geography.earthscience project 
     This must be run after installing the STEM workspace and after changes
     to code generated by EMF models.
                                                                    
     ====================================================================== -->
<project name="STEM Internal Earth Science Data" default="update_all">
	<description>
     Use the properties files to populate the org.eclipse.stem.data.geography.earthscience plugin
    </description>

	<!-- P r o j e c t  S p e c i f i c a t i o n s -->

	<!-- The name of the project -->
	<property name="project.name" value="stem" />


	<!-- Are we running headless? -->
	<condition property="runningHeadless">
		<isset property="buildDirectory" />
	</condition>

	<!-- The buildDirectory property is set in a headless build -->
	<condition property="pluginRootDirectory" value="${buildDirectory}/plugins" else="..">
		<isset property="runningHeadless" />
	</condition>

	<!-- The baseLocation property is the location of the eclipse home installation -->
	<!-- It is used to find eclipse plugins                                         -->
	<!-- It is set in a headless build, but not one started manually from Eclipse   -->
	<condition property="baseLocation" value="${eclipse.pdebuild.home}../..">
		<not>
			<isset property="runningHeadless" />
		</not>
	</condition>

	<!-- This is the location of the class files of the built plug-ins     -->
	<!-- If this is a manual build started from Eclipse then the directory -->
	<!-- is "bin", if its a headless build then the directory is "@dot"    -->
	<!-- The property baseLocation is set in a headless build              -->
	<condition property="targetBin" value="@dot" else="bin">
		<isset property="runningHeadless" />
	</condition>


	<!-- The prefix for fully qualified names -->
	<property name="ID_ROOT" value="org.eclipse.stem" />

	<!-- The class path to use -->
	<path id="classpath.runtime">
		<pathelement location="${pluginRootDirectory}/${ID_ROOT}.internal.data.geography.earthscience/${targetBin}" />
	</path>

	<target name="update_all" depends="create_data_update_xml, run_data_update_xml" />


	<!-- Create updateEarthscienceData.xml -->
	<target name="create_data_update_xml">
		<java classname="${ID_ROOT}.internal.data.geography.earthscience.GenerateUpdateXML" fork="true">
			<classpath refid="classpath.runtime" />
		</java>
	</target>

	<!-- run  updateEarthscienceData.xml -->
	<target name="run_data_update_xml">
	    <ant dir="${pluginRootDirectory}/${ID_ROOT}.internal.data.geography.earthscience.elevation" antfile="update.xml"/>
		<ant dir="${pluginRootDirectory}/${ID_ROOT}.internal.data.geography.earthscience" antfile="updateEarthscienceData.xml"/>
	</target>

</project>
