]>
git.argeo.org Git - gpl/argeo-slc.git/blob - plugins/maven-argeo-pde-plugin/src/main/scripts/argeo-pde.build.xml
c2fe0b17edc946d453925c19e161ec3d0d9542c3
6 <!-- Maven project basedir -->
7 <property name=
"projectDirectory" location=
"${basedir}" />
8 <!-- Maven build dir -->
9 <property name=
"project.build.directory" location=
"${projectDirectory}/target" />
10 <!-- Maven dependency plugin dir -->
11 <property name=
"dependencyDir" location=
"${project.build.directory}/dependency" />
12 <!-- Arguments passed to Eclipse ant -->
13 <property name=
"eclipseAntArgs" value=
"" />
14 <!-- Additional arguments passed to Eclipse build script -->
15 <property name=
"buildScriptProperties" value=
"" />
20 <!-- Argeo PDE plugin dir -->
21 <property name=
"argeo-pde.dir" location=
"${project.build.directory}/argeo-pde" />
22 <!-- Temporary folder used by Eclipse build -->
23 <property name=
"buildTempFolder" location=
"${argeo-pde.dir}/temp" />
24 <!-- Eclipse Builder -->
25 <!--<property name="pdeBuilder" location="${argeo-pde.dir}/pdeBuilder" />-->
27 <!-- Eclipse Target -->
28 <property name=
"eclipseTarget" location=
"${argeo-pde.dir}/eclipseTarget" />
29 <property name=
"pdeBuilder" location=
"${eclipseTarget}" />
31 <!-- TODO: remove this since we build only features? -->
32 <available file=
"${projectDirectory}/plugin.xml" property=
"elementType" value=
"plugin" />
33 <available file=
"${projectDirectory}/feature.xml" property=
"elementType" value=
"feature" />
35 <!-- Destination dirs -->
36 <property name=
"argeo-pde.destinationDir" location=
"${argeo-pde.dir}/destination" />
37 <property name=
"pluginDestination" location=
"${argeo-pde.destinationDir}/plugins" />
38 <property name=
"featureDestination" location=
"${argeo-pde.destinationDir}/features" />
41 <property name=
"argeo-pde.sourceDir" location=
"${argeo-pde.dir}/source" />
42 <property name=
"buildDirectory" location=
"${argeo-pde.sourceDir}" />
45 <!-- TODO: make it more generic. Site file template -->
46 <property name=
"siteTemplate" location=
"${projectDirectory}/site.template" />
48 <!-- TODO: put it under argeo-pde. Product build properties -->
49 <property name=
"buildConfiguration" value=
"buildConfiguration" />
50 <property name=
"buildConfiguration.dir" location=
"${projectDirectory}/${buildConfiguration}" />
55 Element build properties
61 <target name=
"buildElement" depends=
"init" description=
"Builds an element (plugin or feature)">
62 <fail message=
"Property buildScriptTargets has to be set" unless=
"buildScriptTargets" />
64 <mkdir dir=
"${pluginDestination}" />
65 <mkdir dir=
"${featureDestination}" />
67 <!-- Copy to source -->
68 <property name=
"sourceBaseDir" location=
"${projectDirectory}/../.." />
69 <copy todir=
"${argeo-pde.sourceDir}">
70 <fileset dir=
"${sourceBaseDir}">
71 <include name=
"plugins/**" />
72 <include name=
"features/**" />
73 <exclude name=
"**/target/**" />
74 <exclude name=
"**/.svn/**" />
78 <property name=
"elementBuildScript" location=
"${buildDirectory}/${elementType}s/${elementId}/build.xml" />
80 <eclipseAnt antfile=
"${ant.file}" antargs=
"eclipse.generateScripts -DpdeBuilder=${pdeBuilder} -DpluginPath=${dependencyDir} -DprojectDirectory=${projectDirectory} -DeclipseBuildDir=${eclipseBuildDir} -DelementId=${elementId} -DbuildDirectory=${buildDirectory}" />
81 <eclipseAnt antfile=
"${elementBuildScript}" antargs=
"${buildScriptTargets} -Dplugin.destination=${pluginDestination} -Dfeature.destination=${featureDestination} -DelementId=${elementId} -DbuildTempFolder=${buildTempFolder} -Dtemp.folder=${buildTempFolder}/temp.folder -Dfeature.temp.folder=${buildTempFolder}/feature.temp.folder ${buildScriptProperties}" />
83 <copy todir=
"${project.build.directory}">
84 <fileset dir=
"${featureDestination}">
85 <include name=
"*.zip" />
87 <mergemapper to=
"${elementId}.zip" />
91 <copy tofile=
"${project.build.directory}/site.xml" file=
"${siteTemplate}">
92 <filterset begintoken=
"$${" endtoken=
"}">
93 <filtersfile file=
"${buildDirectory}/finalFeaturesVersions.properties" />
96 <zip destfile=
"${project.build.directory}/${elementId}-updatesite.zip">
97 <fileset dir=
"${project.build.directory}">
98 <include name=
"plugins/*.jar" />
99 <include name=
"features/*.jar" />
100 <include name=
"site.xml" />
108 <target name=
"buildProduct" depends=
"init" description=
"Builds a product">
109 <!-- Load provided build.properties to leave a chance to override -->
110 <property file=
"${buildConfiguration.dir}/build.properties" />
111 <!-- Set default properties -->
112 <property name=
"archivePrefix" value=
"${elementId}" />
113 <property name=
"buildId" value=
"${archivePrefix}" />
114 <property name=
"buildLabel" value=
"${archivePrefix}" />
115 <property name=
"collectingFolder" value=
"${archivePrefix}" />
116 <property name=
"skipFetch" value=
"true" />
117 <property name=
"skipMaps" value=
"true" />
118 <property name=
"runPackager" value=
"true" />
120 <!-- Find PDE build file -->
121 <pathconvert pathsep=
"" property=
"productBuildFile">
123 <fileset dir=
"${pdeBuilder}/plugins">
124 <include name=
"org.eclipse.pde.build_*/scripts/productBuild/productBuild.xml" />
128 <echo message=
"productBuildFile=${productBuildFile}" />
130 <!-- Copy sources -->
131 <property name=
"buildDirectory" location=
"${project.build.directory}/productBuild" />
132 <mkdir dir=
"${buildDirectory}" />
133 <copy todir=
"${buildDirectory}" includeemptydirs=
"true" verbose=
"true">
134 <fileset dir=
"${projectDirectory}/../..">
135 <include name=
"plugins/**" />
136 <include name=
"features/**" />
137 <exclude name=
"**/.svn/**" />
138 <exclude name=
"**/target/**" />
143 <eclipseAnt antfile=
"${productBuildFile}" antargs=
"-Dbuilder=${buildConfiguration.dir} -DbuildDirectory=${buildDirectory} -DbaseLocation=${eclipseTarget} -Dbase=${base} -DpluginPath=${dependencyDir} -DarchivePrefix=${archivePrefix} -DbuildLabel=${buildLabel} -DbuildId=${buildId} -DcollectingFolder=${collectingFolder} -DskipFetch=${skipFetch} -DskipMaps=${skipMaps} -DrunPackager=${runPackager}" />
145 <!-- Copy to target dir -->
146 <copy todir=
"${project.build.directory}">
147 <fileset dir=
"${buildDirectory}/${collectingFolder}">
148 <include name=
"*.zip" />
150 <globmapper from=
"${archivePrefix}-*" to=
"${elementId}-*" />
157 <target name=
"clean" depends=
"init,clean.elementBuildScript" description=
"Cleans the generated resources">
158 <delete dir=
"${projectDirectory}/workspace" verbose=
"true" />
159 <delete file=
"${projectDirectory}/javaCompiler...args" verbose=
"true" />
161 <fileset dir=
"${projectDirectory}/../..">
162 <include name=
"final*.properties" />
163 <include name=
"assemble*.xml" />
164 <include name=
"package*.xml" />
169 <target name=
"clean.elementBuildScript" if=
"elementBuildScript.exists">
170 <ant antfile=
"${elementBuildScript}" target=
"clean" />
171 <delete file=
"${elementBuildScript}" verbose=
"true" />
177 <target name=
"eclipseTarget" description=
"Creates an Eclipse target location based on the dependencies">
178 <taskdef resource=
"net/sf/antcontrib/antlib.xml" />
180 <dirset dir=
"${project.build.directory}/dependency">
185 <move todir="@{dir}" failonerror="false">
186 <fileset dir="@{dir}/eclipse">
187 <include name="**" />
190 <delete dir="@{dir}/eclipse" failonerror="false" quiet="true" />
192 <copy todir=
"${eclipseTarget}" failonerror=
"false">
193 <fileset dir=
"@{dir}">
194 <include name=
"plugins/**" />
195 <include name=
"features/**" />
198 <copy todir=
"${eclipseTarget}" failonerror=
"false">
199 <fileset dir=
"@{dir}/eclipse">
200 <include name=
"plugins/**" />
201 <include name=
"features/**" />
207 <!-- Copy configuration from SDK -->
209 <dirset dir=
"${project.build.directory}/dependency">
210 <include name=
"eclipse-sdk-*" />
213 <copy todir=
"${eclipseTarget}" failonerror=
"false">
214 <fileset dir=
"@{dir}/eclipse">
215 <include name=
"configuration/**" />
227 <property name="base" location="${eclipseBuildDir}" />
228 <property name="baseLocation" location="${base}/eclipse" />
229 <property name="pdeBuilder" location="${eclipseBuildDir}/argeo-slc-pde" />
230 <property name="pluginPathBase" location="${eclipseBuildDir}/pluginPath" />
232 <path id=
"pdeBuilder.launcher.classpath">
233 <fileset dir=
"${pdeBuilder}/plugins">
234 <include name=
"org.eclipse.equinox.launcher_*.jar" />
238 <!-- Log properties -->
239 <echo message=
"basedir=${basedir}" />
240 <echo message=
"ant.file=${ant.file}" />
241 <echo message=
"projectDirectory=${projectDirectory}" />
243 <!--<echo message="eclipseBuildDir=${eclipseBuildDir}" />
244 <echo message="base=${base}" />
245 <echo message="baseLocation=${baseLocation}" />
246 <echo message="pdeBuilder=${pdeBuilder}" />
247 <echo message="localBuildDir=${localBuildDir}" />
248 <echo message="pluginPathBase=${pluginPathBase}" />
250 <echo message=
"pdeBuilder=${pdeBuilder}" />
251 <echo message=
"eclipseTarget=${eclipseTarget}" />
253 <echo message=
"elementType=${elementType}" />
254 <echo message=
"elementId=${elementId}" />
255 <echo message=
"elementBuildScript=${elementBuildScript}" />
256 <echo message=
"buildScriptTargets=${buildScriptTargets}" />
257 <echo message=
"buildScriptProperties=${buildScriptProperties}" />
259 <echo message=
"eclipseAntArgs=${eclipseAntArgs}" />
261 <echo message=
"buildConfiguration.dir=${buildConfiguration.dir}" />
263 <available file=
"${elementBuildScript}" property=
"elementBuildScript.exists" value=
"true" />
266 <target name="setPluginPath">
267 <mkdir dir="${dependencyDir}" />
268 <pathconvert property="pluginPath">
270 <pathelement location="${dependencyDir}" />
271 <dirset dir="${pluginPathBase}">
276 <echo message="pluginPath=${pluginPath}" />
279 <!-- TARGETS TO BE CALLED WITH ANT ECLIPSE -->
280 <target name=
"eclipse.generateScripts" depends=
"init">
281 <fail message=
"Property elementType has to be set" unless=
"elementType" />
282 <eclipse.buildScript
elements=
"${elementType}@${elementId}" buildDirectory=
"${buildDirectory}" baseLocation=
"${eclipseTarget}" outputUpdateJars=
"true" generateVersionsLists=
"true" pluginPath=
"${dependencyDir}" />
286 <macrodef name=
"eclipseAnt">
287 <attribute name=
"antfile" />
288 <attribute name=
"antargs" />
290 <echo message=
"Call Eclipse Ant for file @{antfile} with args ${eclipseAntArgs} @{antargs}" />
291 <java fork=
"true" classname=
"org.eclipse.core.launcher.Main" failonerror=
"true">
292 <classpath refid=
"pdeBuilder.launcher.classpath" />
293 <arg line=
"-data ${argeo-pde.dir}/workspace" />
294 <arg line=
"-application org.eclipse.ant.core.antRunner" />
295 <arg line=
"-buildfile @{antfile}" />
296 <arg line=
"${eclipseAntArgs}" />
297 <arg line=
"@{antargs}" />