blob: fcac5a14dbb5e6f0ec95f695ae17fee28183787f [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 Geographic Data" default="update_all">
<description>
Use the properties files to populate the org.eclipse.stem.data.geography 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" />
<!-- The name of the target plugin -->
<property name="target.plugin" value="${ID_ROOT}.data.geography" />
<!-- 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 lat/long files -->
<property name="path.latlong.files" value="${path.sourceplugin}/resources/data/geo" />
<!-- The path to the root directory of the static statistics files -->
<property name="path.statistics.files" value="${path.sourceplugin}/resources/data/statistics" />
<!-- 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 geography source code -->
<property name="path.geography.src" value="${path.targetplugin}/src/org/eclipse/stem/data/geography" />
<!-- The path to the root directory of geography source code for centers -->
<property name="path.geography.src.centers" value="${path.geography.src}/centers" />
<!-- 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}" />
<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_iso_mappings, update_centers, update_geography, update_latlong, update_graph_partition_statistics" />
<!-- Update the geography plugin with the latest definitions -->
<target name="update_geography" depends="create_candidates, update_geography_plugin_xml, update_geography_plugin_properties, update_geography_generated_files" />
<target name="update_geography_generated_files" depends="update_geography_graphs" />
<target name="update_geography_plugin_xml" depends="create_candidates">
<copy tofile="${file.target.pluginxml}" file="${file.util.pluginxml}" overwrite="true" />
</target>
<target name="update_geography_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_geography_graphs" depends="create_candidates">
<copy todir="${path.targetplugin}/resources/data/" overwrite="true">
<fileset dir="${path.generated.files}">
<include name="**/*.graph" />
</fileset>
</copy>
</target>
<!-- Copy generated and existing iso key mapping files to the geography plugin -->
<target name="update_iso_mappings" depends="create_iso_mappings">
<!-- Copy generated Level 0 ISO key NLS properties file to Geography SRC directory -->
<copy todir="${path.geography.src}" overwrite="true" flatten="true">
<fileset dir="${path.generated.files}">
<include name="**/level0ISONames.properties" />
</fileset>
</copy>
<!-- Copy existing ISO key NLS properties file to Geography SRC directory -->
<copy todir="${path.geography.src}" overwrite="true" flatten="true">
<fileset dir="${path.resource.files}">
<include name="**/*_names.properties" />
</fileset>
</copy>
<!-- Copy generated alpha2 to alpha3 ISO key properties file to Geography ZZZ DATA directory -->
<copy todir="${path.targetplugin}/resources/data/" overwrite="true">
<fileset dir="${path.generated.files}">
<include name="**/level0ISOKeys.properties" />
</fileset>
</copy>
</target>
<target name="update_graph_partition_statistics" depends="create_graph_partition_statistics">
<copy todir="${path.targetplugin}/resources/data/" overwrite="true">
<fileset dir="${path.generated.files}">
<include name="statistics/*" />
</fileset>
</copy>
<copy todir="${path.targetplugin}/resources/data/statistics" overwrite="true" >
<fileset dir="${path.statistics.files}">
<include name="*.csv" />
</fileset>
</copy>
</target>
<target name="update_centers" depends="update_iso_mappings">
<copy todir="${path.geography.src.centers}" overwrite="true" flatten="true">
<fileset dir="${path.resource.files}">
<include name="**/*_centers.properties" />
</fileset>
</copy>
</target>
<target name="update_latlong">
<copy todir="${path.targetplugin}/resources/data/geo" overwrite="true" >
<fileset dir="${path.latlong.files}">
<include name="**/*_MAP.xml" />
</fileset>
</copy>
</target>
<target name="create_graph_partition_statistics" depends="clean">
<java classname="${ID_ROOT}.internal.data.geography.graphsynchronizer.WorldPartitioningStats" fork="true" maxmemory="1024m">
<classpath refid="classpath.runtime" />
<arg value="${path.sourceplugin}" />
<jvmarg value="-Xms1024m" />
<jvmarg value="-Xmx1024m" />
</java>
</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>
<!-- Create the top level (0) files that list the level 0 alpha3 and alpha2 ISO-3166 mappings and the
coresponding names for each ISOKEY. These can be used in things like the GUI where we list
every country and its name -->
<target name="create_iso_mappings" depends="clean, create_generated_files_dir">
<java classname="${source.plugin}.isokeycollector.ISOKeyCollector">
<classpath refid="classpath.runtime" />
<arg value="${path.sourceplugin}" />
</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/**/*" />
<include name="geo/**/*" />
<include name="statistics/**/*" />
</fileset>
</delete>
</target>
<target name="create_generated_files_dir">
<mkdir dir="${path.generated.files}"/>
</target>
</project>