blob: 66463d81a3ca094460f31315796cc846c5280eea [file] [log] [blame]
david_williams42f9b242006-11-27 18:45:14 +00001<?xml version="1.0" encoding="UTF-8"?>
david_williams9505a3e2007-06-29 23:42:47 +00002<project
3 name="runbuild"
4 default="runbuild"
5 basedir=".">
david_williams42f9b242006-11-27 18:45:14 +00006
7 <!-- = = = standard properties pattern = = = -->
8 <!--
david_williams9505a3e2007-06-29 23:42:47 +00009 Note to be cross-platform, "environment variables" are only appropriate for
david_williams42f9b242006-11-27 18:45:14 +000010 some variables, e.g. ones we set, since properties are case sensitive, even if
11 the environment variables on your operating system are not, e.g. it will
12 be ${env.Path} not ${env.PATH} on Windows -->
13 <property environment="env" />
david_williams9505a3e2007-06-29 23:42:47 +000014
david_williams42f9b242006-11-27 18:45:14 +000015 <!--
david_williams9505a3e2007-06-29 23:42:47 +000016 Let users override standard properties, if desired.
17 If directory, file, or some properties do not exist,
18 then standard properties will be used.
19 -->
20 <property
21 file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties" />
david_williams42f9b242006-11-27 18:45:14 +000022
david_williams42f9b242006-11-27 18:45:14 +000023 <!-- = = = end standard properties pattern = = = -->
24
david_williams403beae2007-12-09 02:10:40 +000025 <fail unless="env.BUILD_HOME" />
26 <fail unless="eclipse.builder.version" />
27
david_williams05dbe622007-12-09 01:20:57 +000028 <property
29 name="basebuilder.path"
david_williams7cc8ea92008-01-02 13:25:30 +000030 value="${env.BASE_BUILDERS}/${eclipse.builder.version}" />
david_williams9505a3e2007-06-29 23:42:47 +000031
david_williamsce156292006-12-11 00:12:35 +000032
david_williams403beae2007-12-09 02:10:40 +000033
david_williamsce156292006-12-11 00:12:35 +000034 <!-- if not explicitly set by caller, we'll assume we should fail
david_williams9505a3e2007-06-29 23:42:47 +000035 here on errors. In some cases, such as JUnit test compiles, or
36 even leaf components, the caller may want to set to false, so that
37 some part of the build is still made available -->
38 <property
39 name="eclipseBuildFailOnError"
40 value="true" />
david_williamsce156292006-12-11 00:12:35 +000041
david_williams42f9b242006-11-27 18:45:14 +000042
43 <target name="runbuild">
david_williams9505a3e2007-06-29 23:42:47 +000044 <dirname
45 file="${ant.file}"
46 property="scripts.build.dir" />
47 <property
48 name="wtp.builder.home"
david_williamsbb8eb452007-11-17 08:43:44 +000049 value="${scripts.build.dir}/../../.." />
david_williams42f9b242006-11-27 18:45:14 +000050
51 <antcall target="runEclipseBuild">
david_williams9505a3e2007-06-29 23:42:47 +000052 <param
53 name="wtp.builder.home"
54 value="${wtp.builder.home}" />
david_williams42f9b242006-11-27 18:45:14 +000055 </antcall>
56 <antcall target="runEclipseBuildStamped">
david_williams9505a3e2007-06-29 23:42:47 +000057 <param
58 name="wtp.builder.home"
59 value="${wtp.builder.home}" />
david_williams42f9b242006-11-27 18:45:14 +000060 </antcall>
61 </target>
62
63
64
david_williams9505a3e2007-06-29 23:42:47 +000065 <target
66 name="build"
67 depends="init">
david_williams42f9b242006-11-27 18:45:14 +000068
69 <!--this property required as of Eclipse 3.0 stream builds > 20031126 -->
david_williams9505a3e2007-06-29 23:42:47 +000070 <property
71 name="buildingOSGi"
72 value="true" />
david_williams42f9b242006-11-27 18:45:14 +000073
74 <!-- this generateFeatureVersionSuffix property causes feature
75 suffixes to be calcuated based on their
76 own CVS tag, plus the qualifier of their contained plugins -->
77 <!--
78 https://bugs.eclipse.org/bugs/show_bug.cgi?id=138825
79 false for builds intended for 3.1.2, since can generate underscores
80 true for builds instended for 3.2
81 -->
david_williams9505a3e2007-06-29 23:42:47 +000082 <property
83 name="generateFeatureVersionSuffix"
84 value="true" />
david_williams42f9b242006-11-27 18:45:14 +000085
david_williams9505a3e2007-06-29 23:42:47 +000086 <property
87 name="outputUpdateJars"
88 value="true" />
david_williams42f9b242006-11-27 18:45:14 +000089
david_williams9505a3e2007-06-29 23:42:47 +000090 <property
91 name="runPackager"
92 value="true" />
david_williams52d0fc02007-05-06 06:08:38 +000093
david_williams42f9b242006-11-27 18:45:14 +000094 <!--run the build for the specified component-->
david_williams403beae2007-12-09 02:10:40 +000095 <echo
96 level="debug"
97 message="basedir: ${basedir}" />
98 <echo
99 level="debug"
100 message="component: ${component}" />
101 <echo
102 level="debug"
103 message="buildDirectory: ${buildDirectory}" />
104 <echo
105 level="debug"
106 message="wtp.builder.home: ${wtp.builder.home}" />
107 <echo
108 level="debug"
109 message="buildBranch: ${buildBranch}" />
david_williamsec797932007-06-30 19:17:08 +0000110
111 <fail unless="buildBranch" />
david_williams42f9b242006-11-27 18:45:14 +0000112
david_williams9505a3e2007-06-29 23:42:47 +0000113 <ant
114 antfile="build.xml"
115 dir="${pde.build.scripts}">
116 <property
117 name="builder"
118 value="${wtp.builder.home}/components/${component}" />
119 <property
120 name="wtp.builder.home"
121 value="${wtp.builder.home}" />
122 <property
123 name="buildBranch"
124 value="${buildBranch}" />
125 <property
david_williams9505a3e2007-06-29 23:42:47 +0000126 name="dependencyTargets"
127 value="${wtp.builder.home}/scripts/dependency/build.xml" />
128 <property
129 name="local.cache.dir"
130 value="${env.LOCAL_PREREQS_CACHE}" />
131 <property
132 name="baseLocation"
david_williams7c345c42008-01-02 13:45:56 +0000133 value="${env.PROJECT_PROJECTS}/${projectname}/${base.location}" />
david_williams9505a3e2007-06-29 23:42:47 +0000134 <property
david_williams9505a3e2007-06-29 23:42:47 +0000135 name="buildRoot"
david_williams0d0bb392008-01-02 08:58:06 +0000136 value="${env.PROJECT_PROJECTS}/${projectname}" />
david_williams9505a3e2007-06-29 23:42:47 +0000137 <property
138 name="testRoot"
david_williams0d0bb392008-01-02 08:58:06 +0000139 value="${env.PROJECT_TESTS}/${projectname}" />
david_williams9505a3e2007-06-29 23:42:47 +0000140 <property
141 name="performanceRoot"
142 value="${env.BUILD_HOME}/${build.perf.tests}-${buildType}" />
david_williams42f9b242006-11-27 18:45:14 +0000143 </ant>
144 </target>
145
david_williams13d378c2007-08-22 04:04:54 +0000146 <target
147 name="checkBaseBuilder"
148 depends="checkWTPBaseBuilder">
149
david_williamsec797932007-06-30 19:17:08 +0000150 <!-- we just check if both base, and our wtp specific one are current, if
151 either is not, we'll get them both -->
152
david_williams05dbe622007-12-09 01:20:57 +0000153 <condition property="basebuilderlocal">
david_williamsec797932007-06-30 19:17:08 +0000154 <and>
155 <available file="${pde.builder.path}" />
david_williams13d378c2007-08-22 04:04:54 +0000156 <!-- should we check explicitly for "true" instead of just isset?
157 either should work for this case, but which is better ant style? -->
158 <isset property="wtpBuilderPresent" />
david_williamsec797932007-06-30 19:17:08 +0000159 </and>
160 </condition>
david_williams403beae2007-12-09 02:10:40 +0000161 <echo message="basebuilderlocal: ${basebuilderlocal}" />
162 <echo message="wtpBuilderPresent: ${wtpBuilderPresent}" />
david_williamsec797932007-06-30 19:17:08 +0000163
david_williams42f9b242006-11-27 18:45:14 +0000164 </target>
165
david_williams9505a3e2007-06-29 23:42:47 +0000166 <target
167 name="getBaseBuilder"
david_williams79b85742007-06-30 19:43:47 +0000168 depends="init,checkBaseBuilder"
david_williams05dbe622007-12-09 01:20:57 +0000169 unless="basebuilderlocal">
david_williams42f9b242006-11-27 18:45:14 +0000170 <!-- *** change the repo info -->
david_williams9505a3e2007-06-29 23:42:47 +0000171 <property
172 name="builderCvsRoot"
173 value=":pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse" />
david_williams05dbe622007-12-09 01:20:57 +0000174
david_williams4fa630e2007-02-17 21:46:07 +0000175 <!-- note: untagged or some default version of base builder is not good to use.
david_williams42f9b242006-11-27 18:45:14 +0000176 in some cases, won't run at all, in the best of cases, will simply
david_williams4fa630e2007-02-17 21:46:07 +0000177 be unstable, so we'll fail if we forgot to specify it -->
david_williams9505a3e2007-06-29 23:42:47 +0000178 <fail unless="eclipse.builder.version" />
179 <mkdir
david_williams4d05c092008-01-02 09:38:25 +0000180 dir="${env.BASE_BUILDERS}/${eclipse.builder.version}" />
david_williams9505a3e2007-06-29 23:42:47 +0000181 <cvs
david_williams13d378c2007-08-22 04:04:54 +0000182 quiet="${env.CVS_QUIET}"
183 reallyquiet="${env.CVS_REALLY_QUIET}"
david_williams9505a3e2007-06-29 23:42:47 +0000184 cvsRoot="${builderCvsRoot}"
david_williams7cc8ea92008-01-02 13:25:30 +0000185 package="${eclipse.builder}"
david_williams9505a3e2007-06-29 23:42:47 +0000186 dest="${basebuilder.path}"
187 tag="${eclipse.builder.version}" />
david_williams64872882007-05-02 06:04:36 +0000188
david_williams9505a3e2007-06-29 23:42:47 +0000189 <fail unless="wtpBuildTools.url" />
190 <!-- now add our WTP base builder if not there -->
david_williamsec797932007-06-30 19:17:08 +0000191 <antcall target="getWTPBaseBuilder" />
david_williams64872882007-05-02 06:04:36 +0000192
david_williams42f9b242006-11-27 18:45:14 +0000193 </target>
194
david_williamsc2796252007-06-30 04:41:27 +0000195 <target
196 name="getWTPBaseBuilder"
197 depends="checkWTPBaseBuilder"
198 unless="wtpBuilderPresent">
199 <get
200 dest="${basebuilder.path}/org.eclipse.releng.basebuilder/plugins/${wtpBuildTools.file}"
201 src="${wtpBuildTools.url}/${wtpBuildTools.file}"
202 usetimestamp="true" />
203 </target>
david_williams42f9b242006-11-27 18:45:14 +0000204
david_williamsc2796252007-06-30 04:41:27 +0000205 <target name="checkWTPBaseBuilder">
206 <condition property="wtpBuilderPresent">
207 <available
208 file="${basebuilder.path}/org.eclipse.releng.basebuilder/plugins/${wtpBuildTools.file}" />
209 </condition>
210 </target>
211
212
213
214
215
david_williams42f9b242006-11-27 18:45:14 +0000216 <target name="init">
217
218
david_williams9505a3e2007-06-29 23:42:47 +0000219 <condition
220 property="buildBranch"
david_williamsc2796252007-06-30 04:41:27 +0000221 value="R3.0">
david_williams9505a3e2007-06-29 23:42:47 +0000222 <equals
223 arg1="${mapVersionTag}"
224 arg2="HEAD" />
david_williams42f9b242006-11-27 18:45:14 +0000225 </condition>
david_williams9505a3e2007-06-29 23:42:47 +0000226 <condition
227 property="buildBranch"
228 value="R0.7">
229 <equals
230 arg1="${mapVersionTag}"
231 arg2="R0_7_maintenance" />
david_williams42f9b242006-11-27 18:45:14 +0000232 </condition>
david_williams9505a3e2007-06-29 23:42:47 +0000233 <condition
234 property="buildBranch"
235 value="R1.0">
236 <equals
237 arg1="${mapVersionTag}"
238 arg2="R1_0_maintenance" />
david_williams42f9b242006-11-27 18:45:14 +0000239 </condition>
david_williams9505a3e2007-06-29 23:42:47 +0000240 <condition
241 property="buildBranch"
242 value="R1.5">
243 <equals
244 arg1="${mapVersionTag}"
245 arg2="R1_5_maintenance" />
david_williams42f9b242006-11-27 18:45:14 +0000246 </condition>
david_williamsc2796252007-06-30 04:41:27 +0000247 <condition
248 property="buildBranch"
david_williams79799372007-09-20 15:24:00 +0000249 value="R1.5">
250 <equals
251 arg1="${mapVersionTag}"
252 arg2="R1_5_5_patches" />
david_williams403beae2007-12-09 02:10:40 +0000253 </condition>
david_williams79799372007-09-20 15:24:00 +0000254 <condition
255 property="buildBranch"
david_williamsc2796252007-06-30 04:41:27 +0000256 value="R2.0">
257 <equals
258 arg1="${mapVersionTag}"
259 arg2="R2_0_maintenance" />
260 </condition>
261 <!-- if not set above, assume R3.0 -->
262 <!-- this happens, for example, when using a "tempTest" branch -->
263 <property
264 name="buildBranch"
265 value="R3.0" />
david_williamsec797932007-06-30 19:17:08 +0000266
david_williams13d378c2007-08-22 04:04:54 +0000267 <!-- strip trailing blanks. Seems either Eclipse, or CVS make it hard to not have trailing spaces -->
268 <replaceregexp
269 flags="gm"
270 file="${wtp.builder.home}/build.properties"
271 match=" *$"
272 replace="" />
david_williams42f9b242006-11-27 18:45:14 +0000273 <property file="${wtp.builder.home}/build.properties" />
david_williams9505a3e2007-06-29 23:42:47 +0000274
david_williams42f9b242006-11-27 18:45:14 +0000275 <ant antfile="${wtp.builder.home}/scripts/build/label.xml" />
276 <property file="${buildDirectory}/label.properties" />
277
278 <!--fetch the HEAD stream of all projects if build type specified as N-->
david_williams9505a3e2007-06-29 23:42:47 +0000279 <condition
280 property="fetchTag"
281 value="HEAD">
282 <equals
283 arg1="${buildType}"
284 arg2="N" />
david_williams42f9b242006-11-27 18:45:14 +0000285 </condition>
286
287 <condition property="tagMaps">
david_williams9505a3e2007-06-29 23:42:47 +0000288 <equals
289 arg1="${build.trial}"
290 arg2="false" />
david_williams42f9b242006-11-27 18:45:14 +0000291 </condition>
292 </target>
293
david_williams9505a3e2007-06-29 23:42:47 +0000294 <target
295 name="runEclipseBuild"
296 if="buildId">
david_williams130e9c62007-12-09 02:06:52 +0000297
david_williams403beae2007-12-09 02:10:40 +0000298 <fail unless="eclipse.builder.version" />
299
300 <!-- if not otherwise set "externally", set the classpath jars for
301 the Execution Envirnonments we need in WTP.
302 And other parameters we need set.
303 To successfully do local builds, most of these do have to be provided
304 externally, such as in "localbuildproperties" directory -->
305 <property
306 name="J2SE-1.4"
david_williams2eefc222007-12-09 03:23:23 +0000307 value="${env.JAVA_4_HOME}/jre/lib/core.jar:${env.JAVA_4_HOME}/jre/lib/xml.jar:${env.JAVA_4_HOME}/jre/lib/graphics.jar:${env.JAVA_4_HOME}/jre/lib/server.jar:${env.JAVA_4_HOME}/jre/lib/ibmorbapi.jar:${env.JAVA_4_HOME}/jre/lib/security.jar" />
david_williams403beae2007-12-09 02:10:40 +0000308 <property
309 name="J2SE-1.5"
david_williams2eefc222007-12-09 03:23:23 +0000310 value="${env.JAVA_5_HOME}/jre/lib/core.jar:${env.JAVA_5_HOME}/jre/lib/vm.jar:${env.JAVA_5_HOME}/jre/lib/xml.jar:${env.JAVA_5_HOME}/jre/lib/graphics.jar:${env.JAVA_5_HOME}/jre/lib/server.jar:${env.JAVA_5_HOME}/jre/lib/ibmorbapi.jar:${env.JAVA_5_HOME}/jre/lib/security.jar" />
david_williamse4638bf2007-12-09 04:49:04 +0000311
david_williams954def22007-12-12 15:21:29 +0000312 <!-- local builds must set build.trial to true, in runbuild.properties, to avoid erroneous time stamps -->
david_williams1a4a35a2007-12-09 02:53:28 +0000313 <property
david_williams403beae2007-12-09 02:10:40 +0000314 name="build.trial"
david_williams954def22007-12-12 15:21:29 +0000315 value="false" />
david_williams403beae2007-12-09 02:10:40 +0000316
317 <fail
318 unless="J2SE-1.5"
319 message="classpath to J2SE-1.5 Execution Environment must be set" />
320 <fail
321 unless="J2SE-1.4"
322 message="classpath to J2SE-1.4 Execution Environment must be set" />
323
david_williamsfdbd7992007-12-10 17:31:57 +0000324 <!-- we read these in as ant properties, so in java call below, we convert
325 them to system (environment) properties, which is where PDE expects to find them -->
david_williams05dbe622007-12-09 01:20:57 +0000326 <echo message="J2SE-1.5=${J2SE-1.5}" />
327 <echo message="J2SE-1.4=${J2SE-1.4}" />
david_williams403beae2007-12-09 02:10:40 +0000328
david_williams9505a3e2007-06-29 23:42:47 +0000329 <java
330 taskname="build-${build.distribution}-${component}"
331 jar="${eclipse.launcher}"
332 fork="true"
333 failonerror="${eclipseBuildFailOnError}">
david_williams42f9b242006-11-27 18:45:14 +0000334 <jvmarg value="-Dosgi.ws=${env.BASEWS}" />
335 <jvmarg value="-Dosgi.os=${env.BASEOS}" />
336 <jvmarg value="-Dosgi.arch=${env.BASEARCH}" />
david_williams403beae2007-12-09 02:10:40 +0000337 <jvmarg value="-Dbuild.home=${env.BUILD_HOME}" />
david_williams85180eb2007-12-09 03:03:44 +0000338 <jvmarg value="-DJAVA_5_HOME=${env.JAVA_5_HOME}" />
339 <jvmarg value="-DJAVA_4_HOME=${env.JAVA_4_HOME}" />
david_williamsfdbd7992007-12-10 17:31:57 +0000340 <jvmarg value="-DJ2SE-1.5=${J2SE-1.5}" />
david_williams0d0bb392008-01-02 08:58:06 +0000341 <jvmarg value="-DJ2SE-1.4=${J2SE-1.4}" />
david_williams42f9b242006-11-27 18:45:14 +0000342 <jvmarg value="-Dbuild.trial=${build.trial}" />
343 <jvmarg value="-DbuildType=${buildType}" />
344 <jvmarg value="-DbuildId=${buildId}" />
david_williams0c25e942008-01-02 18:14:31 +0000345 <jvmarg value="-Dosgi.clean=true" />
david_williams42f9b242006-11-27 18:45:14 +0000346 <jvmarg value="-DmapVersionTag=${mapVersionTag}" />
david_williams403beae2007-12-09 02:10:40 +0000347 <jvmarg
348 value="-Declipse.builder.version=${eclipse.builder.version}" />
david_williams13d378c2007-08-22 04:04:54 +0000349 <jvmarg
david_williams7cc8ea92008-01-02 13:25:30 +0000350 value="-Declipse.builder=${eclipse.builder}" />
351 <jvmarg
david_williams4fea4dd2008-01-02 13:29:59 +0000352 value="-Dprojectname=${projectname}" />
353 <jvmarg
david_williams7f01a0d2007-12-10 02:17:05 +0000354 value="-Dreleng.jsf-mapVersionTag=${releng.jsf-mapVersionTag}" />
david_williams13d378c2007-08-22 04:04:54 +0000355 <jvmarg
356 value="-Dreleng.dali-mapVersionTag=${releng.dali-mapVersionTag}" />
david_williams42f9b242006-11-27 18:45:14 +0000357 <jvmarg value="-Dwtp.builder.home=${wtp.builder.home}" />
358 <jvmarg value="-Dbuild.distribution=${build.distribution}" />
david_williamsf1fa0422006-11-28 22:36:04 +0000359 <jvmarg value="-Dcomponent=${component}" />
david_williams3dd4a5c2008-01-02 15:12:40 +0000360 <jvmarg value="-Dbasebiulder.path=${basebuilder.path}" />
361 <jvmarg value="-DwtpBuildTools.file=${wtpBuildTools.file}" />
david_williams42f9b242006-11-27 18:45:14 +0000362 <arg value="-application" />
363 <arg value="org.eclipse.ant.core.antRunner" />
364 <arg value="-buildfile" />
365 <arg value="${ant.file}" />
366 <arg value="build" />
david_williams9505a3e2007-06-29 23:42:47 +0000367
david_williams42f9b242006-11-27 18:45:14 +0000368 </java>
369 </target>
david_williams9505a3e2007-06-29 23:42:47 +0000370
371 <target
372 name="runEclipseBuildStamped"
373 unless="buildId">
374 <java
375 taskname="build-${build.distribution}-${component}"
376 jar="${eclipse.launcher}"
377 fork="true"
378 failonerror="${eclipseBuildFailOnError}">
david_williams42f9b242006-11-27 18:45:14 +0000379 <jvmarg value="-Dosgi.ws=${env.BASEWS}" />
380 <jvmarg value="-Dosgi.os=${env.BASEOS}" />
381 <jvmarg value="-Dosgi.arch=${env.BASEARCH}" />
382 <jvmarg value="-Dbuild.home=${env.BUILD_HOME}" />
david_williamsfdbd7992007-12-10 17:31:57 +0000383 <jvmarg value="-DJAVA_5_HOME=${env.JAVA_5_HOME}" />
384 <jvmarg value="-DJAVA_4_HOME=${env.JAVA_4_HOME}" />
385 <jvmarg value="-DJ2SE-1.5=${J2SE-1.5}" />
386 <jvmarg value="-DJ2SE-1.4=${J2SE-1.4}" />
david_williams42f9b242006-11-27 18:45:14 +0000387 <jvmarg value="-Dbuild.trial=${build.trial}" />
388 <jvmarg value="-DbuildType=${buildType}" />
david_williams42f9b242006-11-27 18:45:14 +0000389 <jvmarg value="-DmapVersionTag=${mapVersionTag}" />
david_williams13d378c2007-08-22 04:04:54 +0000390 <jvmarg
david_williams7f01a0d2007-12-10 02:17:05 +0000391 value="-Dreleng.jsf-mapVersionTag=${releng.jsf-mapVersionTag}" />
david_williams13d378c2007-08-22 04:04:54 +0000392 <jvmarg
393 value="-Dreleng.dali-mapVersionTag=${releng.dali-mapVersionTag}" />
david_williams42f9b242006-11-27 18:45:14 +0000394 <jvmarg value="-Dwtp.builder.home=${wtp.builder.home}" />
395 <jvmarg value="-Dbuild.distribution=${build.distribution}" />
david_williamsf1fa0422006-11-28 22:36:04 +0000396 <jvmarg value="-Dcomponent=${component}" />
david_williams42f9b242006-11-27 18:45:14 +0000397 <arg value="-application" />
398 <arg value="org.eclipse.ant.core.antRunner" />
399 <arg value="-buildfile" />
400 <arg value="${ant.file}" />
401 <arg value="build" />
david_williams9505a3e2007-06-29 23:42:47 +0000402 </java>
david_williams42f9b242006-11-27 18:45:14 +0000403 </target>
404</project>