blob: 11c2ed6d7e335b5eb7b115ec92287b744c86b039 [file] [log] [blame]
ndaib8cedc82005-09-13 18:00:32 +00001<?xml version="1.0"?>
david_williams1cff0e92006-11-23 00:40:29 +00002<project
3 name="test"
4 default="get">
david_williamsd622a5b2010-09-14 05:46:36 +00005 <description>get and install dependencies</description>
ndaib8cedc82005-09-13 18:00:32 +00006
david_williams403beae2007-12-09 02:10:40 +00007
david_williams42f9b242006-11-27 18:45:14 +00008 <!-- Note to be cross-platform, "environment variables" are only appropriate for
9 some variables, e.g. ones we set, since properties are case sensitive, even if
10 the environment variables on your operating system are not, e.g. it will
11 be ${env.Path} not ${env.PATH} on Windows -->
david_williams2398e362011-03-05 02:45:39 +000012 <property environment="env"/>
david_williams403beae2007-12-09 02:10:40 +000013
david_williams42f9b242006-11-27 18:45:14 +000014 <!--
david_williams403beae2007-12-09 02:10:40 +000015 Note: if baseos, basews, and basearch are "passed in" to this
16 file, then they take priority, and retain their value. Otherwise,
17 use the current environment. Normally, the current environment is
18 desired, but sometimes, such as for creating the "all in ones", it may
19 be desired to "get" packages for other combinations.
david_williams42f9b242006-11-27 18:45:14 +000020 -->
david_williams403beae2007-12-09 02:10:40 +000021 <property
22 name="baseos"
david_williams7e568c72010-09-12 09:04:15 +000023 value="${env.BASEOS}"/>
david_williams403beae2007-12-09 02:10:40 +000024 <property
25 name="basews"
david_williams7e568c72010-09-12 09:04:15 +000026 value="${env.BASEWS}"/>
david_williams403beae2007-12-09 02:10:40 +000027 <property
28 name="basearch"
david_williams7e568c72010-09-12 09:04:15 +000029 value="${env.BASEARCH}"/>
david_williams403beae2007-12-09 02:10:40 +000030
david_williams1cff0e92006-11-23 00:40:29 +000031 <!-- =================================
32 target: get
33 ================================= -->
david_williams2398e362011-03-05 02:45:39 +000034 <property file="@dependencyProperties@"/>
ndaib8cedc82005-09-13 18:00:32 +000035
36
david_williams1cff0e92006-11-23 00:40:29 +000037 <!-- - - - - - - - - - - - - - - - - -
38 target: init
39 - - - - - - - - - - - - - - - - - -->
david_williams2398e362011-03-05 02:45:39 +000040 <target name="init">
david_williams1cff0e92006-11-23 00:40:29 +000041 <property
42 name="dependency.name"
david_williams7e568c72010-09-12 09:04:15 +000043 value="${@dependencyGroupId@name}"/>
david_williams1cff0e92006-11-23 00:40:29 +000044 <property
45 name="dependency.description"
david_williams7e568c72010-09-12 09:04:15 +000046 value="${@dependencyGroupId@descriptions}"/>
david_williams1cff0e92006-11-23 00:40:29 +000047 <property
48 name="dependency.url"
david_williams7e568c72010-09-12 09:04:15 +000049 value="${@dependencyGroupId@url}"/>
david_williams98bb2142010-08-05 04:10:36 +000050
david_williams7e568c72010-09-12 09:04:15 +000051 <property
52 name="dependency.tobeinstalledfeaturegroups"
53 value="${@dependencyGroupId@tobeinstalledfeaturegroups}"/>
david_williamsd1b83522010-10-03 05:22:04 +000054
55 <condition
56 property="dependency.repo"
57 value="${@dependencyGroupId@repo}">
david_williams2398e362011-03-05 02:45:39 +000058 <isset property="@dependencyGroupId@repo"/>
david_williamsd1b83522010-10-03 05:22:04 +000059 </condition>
60
david_williamsc0c2b972010-10-03 03:21:44 +000061
david_williams1cff0e92006-11-23 00:40:29 +000062 <property
63 name="local.cache.dir"
david_williams7e568c72010-09-12 09:04:15 +000064 value="."/>
ndaib8cedc82005-09-13 18:00:32 +000065
david_williams1cff0e92006-11-23 00:40:29 +000066 <condition
67 property="dependency.file"
68 value="${@dependencyGroupId@file}">
david_williamse521fb52010-10-03 08:25:25 +000069 <and>
david_williams2398e362011-03-05 02:45:39 +000070 <isset property="@dependencyGroupId@file"/>
david_williamse521fb52010-10-03 08:25:25 +000071 <not>
72 <or>
nickboldt4871dd72017-12-06 10:57:37 -050073 <isset property="@dependencyGroupId@file.linux-gtk-x86_64"/>
74 <isset property="@dependencyGroupId@file.linux-gtk-ppc64"/>
75 <isset property="@dependencyGroupId@file.win32-win32-x86_64"/>
76 <isset property="@dependencyGroupId@file.macosx-cocoa-x86_64"/>
david_williamse521fb52010-10-03 08:25:25 +000077 </or>
78 </not>
79 </and>
david_williams1cff0e92006-11-23 00:40:29 +000080 </condition>
81 <condition
82 property="dependency.file"
nickboldt4871dd72017-12-06 10:57:37 -050083 value="${@dependencyGroupId@file.win32-win32-x86_64}">
david_williams1cff0e92006-11-23 00:40:29 +000084 <and>
nickboldt4871dd72017-12-06 10:57:37 -050085 <isset property="@dependencyGroupId@file.win32-win32-x86_64"/>
david_williams1cff0e92006-11-23 00:40:29 +000086 <equals
87 arg1="win32"
david_williams7e568c72010-09-12 09:04:15 +000088 arg2="${baseos}"/>
david_williams1cff0e92006-11-23 00:40:29 +000089 <equals
90 arg1="win32"
david_williams7e568c72010-09-12 09:04:15 +000091 arg2="${basews}"/>
david_williams1cff0e92006-11-23 00:40:29 +000092 <equals
nickboldt4871dd72017-12-06 10:57:37 -050093 arg1="x86_64"
david_williams7e568c72010-09-12 09:04:15 +000094 arg2="${basearch}"/>
david_williams1cff0e92006-11-23 00:40:29 +000095 </and>
96 </condition>
97 <condition
98 property="dependency.file"
nickboldt4871dd72017-12-06 10:57:37 -050099 value="${@dependencyGroupId@file.linux-gtk-x86_64}">
david_williams1cff0e92006-11-23 00:40:29 +0000100 <and>
nickboldt4871dd72017-12-06 10:57:37 -0500101 <isset property="@dependencyGroupId@file.linux-gtk-x86_64"/>
david_williams1cff0e92006-11-23 00:40:29 +0000102 <equals
103 arg1="linux"
david_williams7e568c72010-09-12 09:04:15 +0000104 arg2="${baseos}"/>
david_williams1cff0e92006-11-23 00:40:29 +0000105 <equals
106 arg1="gtk"
david_williams7e568c72010-09-12 09:04:15 +0000107 arg2="${basews}"/>
david_williams1cff0e92006-11-23 00:40:29 +0000108 <equals
nickboldt4871dd72017-12-06 10:57:37 -0500109 arg1="x86_64"
david_williams7e568c72010-09-12 09:04:15 +0000110 arg2="${basearch}"/>
david_williams1cff0e92006-11-23 00:40:29 +0000111 </and>
112 </condition>
113 <condition
114 property="dependency.file"
nickboldt4871dd72017-12-06 10:57:37 -0500115 value="${@dependencyGroupId@file.linux-gtk-ppc64}">
david_williams1cff0e92006-11-23 00:40:29 +0000116 <and>
nickboldt4871dd72017-12-06 10:57:37 -0500117 <isset property="@dependencyGroupId@file.linux-gtk-ppc64"/>
david_williams1cff0e92006-11-23 00:40:29 +0000118 <equals
119 arg1="linux"
david_williams7e568c72010-09-12 09:04:15 +0000120 arg2="${baseos}"/>
david_williams1cff0e92006-11-23 00:40:29 +0000121 <equals
122 arg1="gtk"
david_williams7e568c72010-09-12 09:04:15 +0000123 arg2="${basews}"/>
david_williams1cff0e92006-11-23 00:40:29 +0000124 <equals
nickboldt4871dd72017-12-06 10:57:37 -0500125 arg1="ppc64"
david_williams7e568c72010-09-12 09:04:15 +0000126 arg2="${basearch}"/>
david_williams1cff0e92006-11-23 00:40:29 +0000127 </and>
128 </condition>
129 <condition
130 property="dependency.file"
nickboldt4871dd72017-12-06 10:57:37 -0500131 value="${@dependencyGroupId@file.macosx-cocoa-x86_64}">
david_williams1cff0e92006-11-23 00:40:29 +0000132 <and>
nickboldt4871dd72017-12-06 10:57:37 -0500133 <isset property="@dependencyGroupId@file.macosx-cocoa-x86_64"/>
david_williams1cff0e92006-11-23 00:40:29 +0000134 <equals
135 arg1="macosx"
david_williams7e568c72010-09-12 09:04:15 +0000136 arg2="${baseos}"/>
david_williams1cff0e92006-11-23 00:40:29 +0000137 <equals
nickboldt4871dd72017-12-06 10:57:37 -0500138 arg1="cocoa"
david_williams7e568c72010-09-12 09:04:15 +0000139 arg2="${basews}"/>
david_williams1cff0e92006-11-23 00:40:29 +0000140 <equals
nickboldt4871dd72017-12-06 10:57:37 -0500141 arg1="x86_64"
david_williams7e568c72010-09-12 09:04:15 +0000142 arg2="${basearch}"/>
david_williams1cff0e92006-11-23 00:40:29 +0000143 </and>
144 </condition>
145 <condition
146 property="dependency.autodownload"
147 value="${@dependencyGroupId@autodownload}">
david_williams2398e362011-03-05 02:45:39 +0000148 <isset property="@dependencyGroupId@autodownload"/>
david_williams1cff0e92006-11-23 00:40:29 +0000149 </condition>
150 <condition
151 property="dependency.releng.url"
152 value="${@dependencyGroupId@releng.url}">
david_williams2398e362011-03-05 02:45:39 +0000153 <isset property="@dependencyGroupId@releng.url"/>
david_williams1cff0e92006-11-23 00:40:29 +0000154 </condition>
155 </target>
ndaib8cedc82005-09-13 18:00:32 +0000156
157
david_williams1cff0e92006-11-23 00:40:29 +0000158 <target
159 name="get"
160 depends="init">
ndaib8cedc82005-09-13 18:00:32 +0000161
david_williams403beae2007-12-09 02:10:40 +0000162 <echo
david_williams14cadd12011-03-23 06:43:39 +0000163 level="debug"
david_williams4ed71962010-10-03 21:00:32 +0000164 message="Getting ${dependency.file} or ${dependency.repo}"/>
david_williams403beae2007-12-09 02:10:40 +0000165 <echo
david_williams14cadd12011-03-23 06:43:39 +0000166 level="debug"
david_williams7e568c72010-09-12 09:04:15 +0000167 message="Url: ${dependency.url}"/>
ndaib8cedc82005-09-13 18:00:32 +0000168
david_williams1cff0e92006-11-23 00:40:29 +0000169 <ant
170 antfile="@dependencyDir@/build.xml"
david_williams7e568c72010-09-12 09:04:15 +0000171 target="default"/>
ndaib8cedc82005-09-13 18:00:32 +0000172
david_williams1cff0e92006-11-23 00:40:29 +0000173 </target>
ndaib8cedc82005-09-13 18:00:32 +0000174
175
david_williams1cff0e92006-11-23 00:40:29 +0000176 <!-- =================================
177 target: install
178 ================================= -->
179 <target
180 name="install"
181 depends="init">
david_williams403beae2007-12-09 02:10:40 +0000182 <echo
david_williams14cadd12011-03-23 06:43:39 +0000183 level="debug"
david_williams7e568c72010-09-12 09:04:15 +0000184 message="Installing ${dependency.file}"/>
david_williams403beae2007-12-09 02:10:40 +0000185 <echo
david_williams14cadd12011-03-23 06:43:39 +0000186 level="debug"
david_williams7e568c72010-09-12 09:04:15 +0000187 message="destination: ${install.destination}"/>
david_williams2398e362011-03-05 02:45:39 +0000188 <antcall target="cleanInstall"/>
189 <property file="${installWorkingDirectory}/installmanifest.properties"/>
190 <antcall target="callInstall"/>
david_williams403beae2007-12-09 02:10:40 +0000191 <echo
david_williams14cadd12011-03-23 06:43:39 +0000192 level="debug"
david_williams4a19a542010-09-27 06:10:16 +0000193 message="installmanifest.properties: ${installWorkingDirectory}/installmanifest.properties"/>
david_williams1cff0e92006-11-23 00:40:29 +0000194 <echo
david_williams4a19a542010-09-27 06:10:16 +0000195 file="${installWorkingDirectory}/installmanifest.properties"
david_williams1cff0e92006-11-23 00:40:29 +0000196 append="true">
197 @dependencyGroupId@${dependency.file}.installed=true
david_williams403beae2007-12-09 02:10:40 +0000198
david_williams1cff0e92006-11-23 00:40:29 +0000199 @dependencyGroupId@dir=${local.cache.dir}
200 @dependencyGroupId@file=${dependency.file}
david_williams403beae2007-12-09 02:10:40 +0000201
david_williams1cff0e92006-11-23 00:40:29 +0000202 </echo>
203 </target>
ndaib8cedc82005-09-13 18:00:32 +0000204
david_williams7e568c72010-09-12 09:04:15 +0000205 <target
206 name="installRepo"
207 depends="init">
208 <echo
david_williams14cadd12011-03-23 06:43:39 +0000209 level="debug"
david_williamsc0c2b972010-10-03 03:21:44 +0000210 message="Installing ${dependency.repo}"/>
david_williams7e568c72010-09-12 09:04:15 +0000211 <echo
david_williams14cadd12011-03-23 06:43:39 +0000212 level="debug"
david_williams7e568c72010-09-12 09:04:15 +0000213 message="destination: ${install.destination}"/>
david_williams2398e362011-03-05 02:45:39 +0000214 <antcall target="cleanInstall"/>
215 <property file="${installWorkingDirectory}/installmanifest.properties"/>
david_williamsd622a5b2010-09-14 05:46:36 +0000216 <!--
217 We first unzip the repo, then use p2 directory app to install into the eclispe
218 location.
david_williams65de9bd2010-09-14 06:21:21 +0000219 TODO: could we just make p2runnable in "transformed" repository? for build case.
david_williamsd622a5b2010-09-14 05:46:36 +0000220 -->
david_williams29cb0192010-08-05 03:00:09 +0000221 <!--
222 We use the exec method for unzip, so we won't fail if a
223 prereq can not be unzipped for some reason. See
224 https://bugs.eclipse.org/bugs/show_bug.cgi?id=283968
225 -->
david_williams14cadd12011-03-23 06:43:39 +0000226
david_williams7e568c72010-09-12 09:04:15 +0000227 <property
228 name="tobeinstalledrepo"
david_williams4a19a542010-09-27 06:10:16 +0000229 value="${installWorkingDirectory}/temprepos/${groupId}"/>
david_williams14cadd12011-03-23 06:43:39 +0000230 <echo
231 level="debug"
232 message="install repo for groupId: ${groupId}"/>
233 <echo
234 level="debug"
235 message="tobeinstalledrepo: ${tobeinstalledrepo}"/>
236 <echo
237 level="debug"
238 message="tobeInstalledfeaturegroups: ${dependency.tobeinstalledfeaturegroups}"/>
david_williamsc0c2b972010-10-03 03:21:44 +0000239
david_williams14cadd12011-03-23 06:43:39 +0000240 <delete failonerror="false" quiet="true">
david_williams2398e362011-03-05 02:45:39 +0000241 <dirset dir="${tobeinstalledrepo}"/>
david_williams55df8e42010-09-14 18:35:25 +0000242 </delete>
david_williams2398e362011-03-05 02:45:39 +0000243 <mkdir dir="${tobeinstalledrepo}"/>
244
david_williams7e568c72010-09-12 09:04:15 +0000245 <exec
246 dir="."
247 executable="unzip">
david_williams2398e362011-03-05 02:45:39 +0000248 <arg line="-o -qq ${local.cache.dir}/${dependency.repo} -d ${tobeinstalledrepo}"/>
david_williams7e568c72010-09-12 09:04:15 +0000249 </exec>
david_williams9e7f5842011-03-06 03:32:03 +0000250
251
david_williams4a19a542010-09-27 06:10:16 +0000252<!-- note we are deliberately running the eclipse we are installing into -->
david_williams7e568c72010-09-12 09:04:15 +0000253 <java
254 taskname="p2Director Install"
255 fork="true"
256 resultProperty="p2DirectorInstallResult"
257 failonerror="true"
Carl Andersonf1859b72013-10-07 14:01:59 -0400258 jvm="${env.JAVA_7_HOME}/bin/java"
david_williams55df8e42010-09-14 18:35:25 +0000259 dir="${install.destination}"
260 classname="org.eclipse.equinox.launcher.Main">
261 <classpath>
david_williams2398e362011-03-05 02:45:39 +0000262 <fileset dir="${install.destination}/eclipse/plugins">
263 <include name="org.eclipse.equinox.launcher_*.jar"/>
david_williams55df8e42010-09-14 18:35:25 +0000264 </fileset>
265 </classpath>
david_williams2398e362011-03-05 02:45:39 +0000266 <jvmarg value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}"/>
267 <arg value="-nosplash"/>
david_williams14cadd12011-03-23 06:43:39 +0000268 <!-- <arg value="-debug"/> -->
david_williams2398e362011-03-05 02:45:39 +0000269 <arg value="-consolelog"/>
270 <arg value="-data"/>
271 <arg value="${installWorkingDirectory}/p2DirectorInstall"/>
272 <arg value="-application"/>
273 <arg value="org.eclipse.equinox.p2.director"/>
david_williams55df8e42010-09-14 18:35:25 +0000274
david_williams2398e362011-03-05 02:45:39 +0000275 <arg value="-repository"/>
276 <arg value="file:/${tobeinstalledrepo}"/>
david_williams61ac4382010-10-04 17:04:43 +0000277
david_williamsd1b83522010-10-03 05:22:04 +0000278
david_williams2398e362011-03-05 02:45:39 +0000279 <arg value="-installIU"/>
280 <arg value="${dependency.tobeinstalledfeaturegroups}"/>
david_williamsf7c38c92010-10-02 17:17:51 +0000281
david_williams2398e362011-03-05 02:45:39 +0000282 <arg value="-list"/>
david_williams9e7f5842011-03-06 03:32:03 +0000283
284
david_williams455f6152010-10-02 05:52:19 +0000285 <!-- make sure our forked env has a DISPLAY? -->
david_williams7e568c72010-09-12 09:04:15 +0000286 <env
287 key="DISPLAY"
288 value="${env.DISPLAY}"/>
david_williams55df8e42010-09-14 18:35:25 +0000289
david_williams2398e362011-03-05 02:45:39 +0000290 <arg value="-vmArgs"/>
david_williams55df8e42010-09-14 18:35:25 +0000291
david_williams7e568c72010-09-12 09:04:15 +0000292 </java>
david_williams14cadd12011-03-23 06:43:39 +0000293 <echo
294 level="debug"
295 message="p2DirectorInstallResult: ${p2DirectorInstallResult}"/>
david_williams7e568c72010-09-12 09:04:15 +0000296
297
298
299
300
301 </target>
302
303
david_williams1cff0e92006-11-23 00:40:29 +0000304 <target
305 name="cleanInstall"
306 if="clean">
307 <available
david_williams4a19a542010-09-27 06:10:16 +0000308 file="${installWorkingDirectory}/installmanifest.properties"
david_williams7e568c72010-09-12 09:04:15 +0000309 property="installmanifest.exists"/>
david_williams2398e362011-03-05 02:45:39 +0000310 <antcall target="cleanInstall2"/>
david_williams1cff0e92006-11-23 00:40:29 +0000311 </target>
jeffliud0eb4a72005-09-28 14:58:59 +0000312
david_williams1cff0e92006-11-23 00:40:29 +0000313 <target
314 name="cleanInstall2"
315 if="installmanifest.exists">
316 <replace
david_williams4a19a542010-09-27 06:10:16 +0000317 file="${installWorkingDirectory}/installmanifest.properties"
david_williams7e568c72010-09-12 09:04:15 +0000318 token="@dependencyGroupId@${dependency.file}.installed=true"/>
david_williams1cff0e92006-11-23 00:40:29 +0000319 </target>
ndaib8cedc82005-09-13 18:00:32 +0000320
david_williams1cff0e92006-11-23 00:40:29 +0000321 <target
322 name="callInstall"
323 unless="@dependencyGroupId@${dependency.file}.installed">
324 <ant
325 antfile="@dependencyDir@/build.xml"
david_williams7e568c72010-09-12 09:04:15 +0000326 target="install"/>
david_williams1cff0e92006-11-23 00:40:29 +0000327 </target>
ndaib8cedc82005-09-13 18:00:32 +0000328
Carl Anderson3cf43402012-08-15 12:27:17 -0400329 <target
330 name="installRepoFromURL"
331 depends="init">
332 <echo message="Installing ${dependency.repo}"/>
333 <echo message="destination: ${install.destination}"/>
334 <antcall target="cleanInstall"/>
335 <property file="${installWorkingDirectory}/installmanifest.properties"/>
336 <echo message="install repo for groupId: ${groupId}"/>
337 <echo message="URL: ${dependency.url}"/>
338 <echo message="tobeInstalledfeaturegroups: ${dependency.tobeinstalledfeaturegroups}"/>
339<!-- note we are deliberately running the eclipse we are installing into -->
340 <java
341 taskname="p2Director Install"
342 fork="true"
343 resultProperty="p2DirectorInstallResult"
344 failonerror="true"
Carl Andersonf1859b72013-10-07 14:01:59 -0400345 jvm="${env.JAVA_7_HOME}/bin/java"
Carl Anderson3cf43402012-08-15 12:27:17 -0400346 dir="${install.destination}"
347 classname="org.eclipse.equinox.launcher.Main">
348 <classpath>
349 <fileset dir="${install.destination}/eclipse/plugins">
350 <include name="org.eclipse.equinox.launcher_*.jar"/>
351 </fileset>
352 </classpath>
353 <jvmarg value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}"/>
354 <arg value="-nosplash"/>
355 <arg value="-debug"/>
356 <arg value="-consolelog"/>
357 <arg value="-data"/>
358 <arg value="${installWorkingDirectory}/p2DirectorInstall"/>
359 <arg value="-application"/>
360 <arg value="org.eclipse.equinox.p2.director"/>
361
362 <arg value="-repository"/>
363 <arg value="${dependency.url}"/>
364
365
366 <arg value="-installIU"/>
367 <arg value="${dependency.tobeinstalledfeaturegroups}"/>
368
369 <arg value="-list"/>
370
371
372 <!-- make sure our forked env has a DISPLAY? -->
373 <env
374 key="DISPLAY"
375 value="${env.DISPLAY}"/>
376
377 <arg value="-vmArgs"/>
378
379 </java>
380 <echo message="p2DirectorInstallResult: ${p2DirectorInstallResult}"/>
381 </target>
ndaidab24cb2006-07-28 15:22:38 +0000382</project>