blob: b887052557c61796ce6b5284c4eb001baf40c7cf [file] [log] [blame]
<?xml version="1.0"?>
<!-- ======================================================================
ANT script to build org.eclispe.ohf.stem.geography project
and the initial set of STEM scenarios.
This must be run after installing the STEM workspace and after changes
to code generated by EMF models.
====================================================================== -->
<project name="STEM Internal Earth Science Models" default="update_all">
<description>
Use the properties files to populate the org.eclipse.stem.data.geography.earthscience.models 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 plugin that contains the plugin.xml file to scan -->
<property name="scan.plugin" value="${ID_ROOT}.data.geography.models" />
<!-- The name of the plugin that contains the plugin.xml file to scan -->
<property name="earthscience.data.plugin" value="${ID_ROOT}.data.geography.earthscience.2003" />
<!-- 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.2003.models" />
<!-- The name of the target plugin -->
<property name="target.plugin" value="${ID_ROOT}.data.geography.earthscience.2003.models" />
<!-- The name of the model (if any) -->
<property name="model.name" value="2003" />
<!-- 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" />
<!-- The path to the root directory of geography source code -->
<property name="path.geography.src" value="${path.targetplugin}/src/org/eclipse/stem/data/geography/earthscience/models" />
<!-- 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.generated.files}/plugin.xml" />
<!-- The name of the plugin.properties file that that is the aggregation of the generated content-->
<property name="file.util.pluginproperties" value="${path.generated.files}/plugin.properties" />
<!-- The name of the plugin.xml file that that is the aggregation of the generated content-->
<property name="file.target.pluginproperties" value="${path.generated.files}/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}.internal.data/${targetBin}" />
<pathelement location="${pluginRootDirectory}/${ID_ROOT}.internal.data.geography/${targetBin}" />
<pathelement location="${pluginRootDirectory}/${ID_ROOT}.internal.data.geography.models/${targetBin}" />
<pathelement location="${pluginRootDirectory}/${ID_ROOT}.internal.data.geography.earthscience/${targetBin}" />
<pathelement location="${pluginRootDirectory}/${ID_ROOT}.data.geography/${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="update_earthscience_models, update_earthscience_plugin_xml, update_earthscience_plugin_properties" />
<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 geography plugin -->
<target name="update_earthscience_models" depends="create_candidates">
<copy todir="${path.targetplugin}/resources/data/" overwrite="true">
<fileset dir="${path.generated.files}/resources/data">
<include name="**/*.model" />
</fileset>
</copy>
</target>
<!-- Create the model 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.earthscience.models.EarthScienceModelGenerator" fork="true" maxmemory="1024m">
<classpath refid="classpath.runtime" />
<arg value="${path.generated.files}" />
<arg value="${scan.plugin}" />
<arg value="${earthscience.data.plugin}" />
<arg value="${target.plugin}" />
<arg value="${model.name}" />
<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.generated.files}/">
<include name="**/*" />
</fileset>
<fileset dir="${path.targetplugin}/resources/data/">
<include name="country/**/*" />
</fileset>
</delete>
</target>
<target name="create_generated_files_dir">
<mkdir dir="${path.generated.files}/resources/data"/>
</target>
</project>