blob: 285437af755254f509e9efd5e92512ca2e21d549 [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 Human Population Data" default="update_all">
<description>
Use the properties files to populate the org.eclipse.stem.data.population.human 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.population.human" />
<!-- The name of the target plugin -->
<property name="target.plugin" value="${ID_ROOT}.data.geography.population.human" />
<!-- 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 population source code -->
<property name="path.geography.src" value="${path.targetplugin}/src/org/eclipse/stem/data/geography/population/human" />
<!-- 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}/../../org.eclipse.stem/core/${ID_ROOT}.core/${targetBin}" />
<pathelement location="${pluginRootDirectory}/../../org.eclipse.stem/core/${ID_ROOT}.definitions/${targetBin}" />
<pathelement location="${pluginRootDirectory}/../../org.eclipse.stem/core/${ID_ROOT}.geography/${targetBin}" />
<pathelement location="${pluginRootDirectory}/../${ID_ROOT}.internal.data/${targetBin}" />
<pathelement location="${pluginRootDirectory}/${ID_ROOT}.data.geography/${targetBin}" />
<pathelement location="${pluginRootDirectory}/../geography/${ID_ROOT}.internal.data.geography/${targetBin}" />
<pathelement location="${pluginRootDirectory}/${ID_ROOT}.internal.data.geography.population/${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_population" />
<!-- Update the geography plugin with the latest definitions -->
<target name="update_population" depends="create_candidates, update_population_plugin_xml, update_population_plugin_properties, update_population_generated_files" />
<target name="update_population_generated_files" depends="update_population_graphs" />
<target name="update_population_plugin_xml" depends="create_candidates">
<copy tofile="${file.target.pluginxml}" file="${file.util.pluginxml}" overwrite="true" />
</target>
<target name="update_population_plugin_properties" depends="create_candidates">
<copy tofile="${file.target.pluginproperties}" file="${file.util.pluginproperties}" overwrite="true" />
</target>
<!-- Update the graph files in the population plugin -->
<target name="update_population_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.population.PopulationDataGenerator" 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>