Skip to main content
summaryrefslogtreecommitdiffstats
blob: b9517672093e189b13ee973d141727230a201ab6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<?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.2009" />
	
	<!-- 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.2009.models" />

	<!-- The name of the target plugin -->
	<property name="target.plugin" value="${ID_ROOT}.data.geography.earthscience.2009.models" />

	<!-- The name of the model (if any) -->
	<property name="model.name" value="2009" />
		
	<!-- 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}.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.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>

Back to the top