blob: 5b3353224456f35f17b120b8eaa086173d856aa4 [file] [log] [blame]
<?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 name of the source plugin (i.e., the one that contains this file -->
<property name="source.plugin" value="${ID_ROOT}.internal.data.geography.earthscience.elevation" />
<!-- The name of the target plugin -->
<property name="target.plugin" value="${ID_ROOT}.data.geography.earthscience.elevation" />
<!-- The path to the root directory of the source plugin -->
<property name="path.sourceplugin" location="${pluginRootDirectory}/${source.plugin}" />
<!-- The path to the root directory of the plugin that will be augmented with generated content -->
<property name="path.targetplugin" location="${pluginRootDirectory}/${target.plugin}" />
<!-- The path to the root directory of the resource files -->
<property name="path.resource.files" value="${path.sourceplugin}/resources/data/country" />
<!-- The path to the root directory of the plugin that will be augmented with generated content-->
<property name="path.generated.files" value="${path.sourceplugin}/temp/data" />
<!-- The path to the root directory of earthscience source code -->
<property name="path.geography.src" value="${path.targetplugin}/src/org/eclipse/stem/data/earthscience" />
<!-- The name of the plugin.xml file that will be augmented with generated content-->
<property name="file.target.pluginxml" value="${path.targetplugin}/plugin.xml" />
<!-- The name of the plugin.properties file that will be augmented with generated content-->
<property name="file.target.pluginproperties" value="${path.targetplugin}/plugin.properties" />
<!-- The name of the plugin.xml file that that is the aggregation of the generated content-->
<property name="file.util.pluginxml" value="${path.sourceplugin}/temp/data/plugin.xml" />
<!-- The name of the plugin.properties file that is the aggregation of the generated content-->
<property name="file.util.pluginproperties" value="${path.sourceplugin}/temp/data/plugin.properties" />
<!-- The class path to use -->
<path id="classpath.runtime">
<pathelement location="${path.sourceplugin}/${targetBin}" />
<pathelement location="${pluginRootDirectory}/${ID_ROOT}.core/${targetBin}" />
<pathelement location="${pluginRootDirectory}/${ID_ROOT}.definitions/${targetBin}" />
<pathelement location="${pluginRootDirectory}/${ID_ROOT}.data.geography/${targetBin}" />
<pathelement location="${pluginRootDirectory}/${ID_ROOT}.internal.data/${targetBin}" />
<pathelement location="${pluginRootDirectory}/${ID_ROOT}.internal.data.geography/${targetBin}" />
<pathelement location="${pluginRootDirectory}/${ID_ROOT}.internal.data.geography.earthscience/${targetBin}" />
<fileset dir="${baseLocation}/plugins/">
<include name="*emf*.jar" />
</fileset>
<fileset dir="${pluginRootDirectory}/${ID_ROOT}.internal.data/lib/">
<include name="*emf*.jar" />
</fileset>
</path>
<target name="update_all" depends="update_earthscience" />
<!-- Update the geography plugin with the latest definitions -->
<target name="update_earthscience" depends="create_candidates, update_earthscience_plugin_xml, update_earthscience_plugin_properties, update_earthscience_generated_files" />
<target name="update_earthscience_generated_files" depends="update_earthscience_graphs" />
<target name="update_earthscience_plugin_xml" depends="create_candidates">
<copy tofile="${file.target.pluginxml}" file="${file.util.pluginxml}" overwrite="true" />
</target>
<target name="update_earthscience_plugin_properties" depends="create_candidates">
<copy tofile="${file.target.pluginproperties}" file="${file.util.pluginproperties}" overwrite="true" />
</target>
<!-- Update the graph files in the earth science plugin -->
<target name="update_earthscience_graphs" depends="create_candidates">
<copy todir="${path.targetplugin}/resources/data/" overwrite="true">
<fileset dir="${path.generated.files}">
<include name="**/*.graph" />
</fileset>
</copy>
</target>
<!-- Create the graph files for countries and the plugin.xml and plugin.properties fragments -->
<target name="create_candidates" depends="clean">
<!-- There is a problem here with specifying fork="true" maxmemory="768m". It causes an IOException on some machines -->
<java classname="${ID_ROOT}.internal.data.geography.GeographyDataGenerator" fork="true" maxmemory="1024m">
<classpath refid="classpath.runtime" />
<arg value="${path.sourceplugin}" />
<jvmarg value="-Xms1024m"/>
<jvmarg value="-Xmx1024m"/>
</java>
</target>
<!-- clean out the .../temp/data directories -->
<!-- clean out the target directories -->
<target name="clean" depends="create_generated_files_dir">
<delete includeEmptyDirs="true" quiet="true">
<fileset dir="${path.sourceplugin}/temp/">
<include name="**/*" />
</fileset>
<fileset dir="${path.targetplugin}/resources/data/">
<include name="country/**/*" />
<include name="relationship/**/*" />
</fileset>
</delete>
</target>
<target name="create_generated_files_dir">
<mkdir dir="${path.generated.files}" />
</target>
</project>