<project>
- <!-- Defaults -->
+ <!--
+ Defaults
+ -->
+
+ <!-- Maven project basedir -->
<property name="projectDirectory" location="${basedir}" />
- <property name="project.build.directory"
- location="${projectDirectory}/target" />
- <property name="dependencyDir"
- location="${project.build.directory}/dependency" />
+ <!-- Maven build dir -->
+ <property name="project.build.directory" location="${projectDirectory}/target" />
+ <!-- Maven dependency plugin dir -->
+ <property name="dependencyDir" location="${project.build.directory}/dependency" />
+ <!-- Arguments passed to Eclipse ant -->
<property name="eclipseAntArgs" value="" />
-
- <!-- Element build properties-->
- <property name="elementBuildScript"
- location="${projectDirectory}/build.xml" />
- <property name="buildTempFolder"
- location="${project.build.directory}/argeo-pde-temp" />
+ <!-- Additional arguments passed to Eclipse build script -->
<property name="buildScriptProperties" value="" />
- <available file="${projectDirectory}/plugin.xml"
- property="elementType"
- value="plugin" />
- <available file="${projectDirectory}/feature.xml"
- property="elementType"
- value="feature" />
+ <!--
+ Argeo PDE folders
+ -->
+ <!-- Argeo PDE plugin dir -->
+ <property name="argeo-pde.dir" location="${project.build.directory}/argeo-pde" />
+ <!-- Temporary folder used by Eclipse build -->
+ <property name="buildTempFolder" location="${argeo-pde.dir}/temp" />
+ <!-- Eclipse Builder -->
+ <!--<property name="pdeBuilder" location="${argeo-pde.dir}/pdeBuilder" />-->
+
+ <!-- Eclipse Target -->
+ <property name="eclipseTarget" location="${argeo-pde.dir}/eclipseTarget" />
+ <property name="pdeBuilder" location="${eclipseTarget}" />
+
+ <!-- TODO: remove this since we build only features? -->
+ <available file="${projectDirectory}/plugin.xml" property="elementType" value="plugin" />
+ <available file="${projectDirectory}/feature.xml" property="elementType" value="feature" />
+
+ <!-- Destination dirs -->
+ <property name="argeo-pde.destinationDir" location="${argeo-pde.dir}/destination" />
+ <property name="pluginDestination" location="${argeo-pde.destinationDir}/plugins" />
+ <property name="featureDestination" location="${argeo-pde.destinationDir}/features" />
+
+ <!-- Source dirs -->
+ <property name="argeo-pde.sourceDir" location="${argeo-pde.dir}/source" />
+ <property name="buildDirectory" location="${argeo-pde.sourceDir}" />
- <property name="pluginDestination"
- location="${project.build.directory}/plugins" />
- <property name="featureDestination"
- location="${project.build.directory}/features" />
- <property name="siteTemplate"
- location="${projectDirectory}/site.template" />
+ <!-- TODO: make it more generic. Site file template -->
+ <property name="siteTemplate" location="${projectDirectory}/site.template" />
- <!-- Product build properties -->
+ <!-- TODO: put it under argeo-pde. Product build properties -->
<property name="buildConfiguration" value="buildConfiguration" />
- <property name="buildConfiguration.dir"
- location="${projectDirectory}/${buildConfiguration}" />
+ <property name="buildConfiguration.dir" location="${projectDirectory}/${buildConfiguration}" />
- <!-- TARGET Build Element -->
- <target name="buildElement"
- depends="init,setPluginPath"
- description="Builds an element (plugin or feature)">
- <fail message="Property buildScriptTargets has to be set"
- unless="buildScriptTargets" />
+
+
+ <!--
+ Element build properties
+ -->
+
+ <!--
+ TARGET Build Element
+ -->
+ <target name="buildElement" depends="init" description="Builds an element (plugin or feature)">
+ <fail message="Property buildScriptTargets has to be set" unless="buildScriptTargets" />
<mkdir dir="${pluginDestination}" />
<mkdir dir="${featureDestination}" />
- <property name="buildDirectory" location="${projectDirectory}/../.." />
+ <!-- Copy to source -->
+ <property name="sourceBaseDir" location="${projectDirectory}/../.." />
+ <copy todir="${argeo-pde.sourceDir}">
+ <fileset dir="${sourceBaseDir}">
+ <include name="plugins/**" />
+ <include name="features/**" />
+ <exclude name="**/target/**" />
+ <exclude name="**/.svn/**" />
+ </fileset>
+ </copy>
- <eclipseAnt antfile="${ant.file}"
- antargs="eclipse.generateScripts -DpluginPath=${pluginPath} -DprojectDirectory=${projectDirectory} -DeclipseBuildDir=${eclipseBuildDir} -DelementId=${elementId} -DbuildDirectory=${buildDirectory}" />
- <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}" />
+ <property name="elementBuildScript" location="${buildDirectory}/${elementType}s/${elementId}/build.xml" />
+
+ <eclipseAnt antfile="${ant.file}" antargs="eclipse.generateScripts -DpdeBuilder=${pdeBuilder} -DpluginPath=${dependencyDir} -DprojectDirectory=${projectDirectory} -DeclipseBuildDir=${eclipseBuildDir} -DelementId=${elementId} -DbuildDirectory=${buildDirectory}" />
+ <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}" />
<copy todir="${project.build.directory}">
<fileset dir="${featureDestination}">
</copy>
<!-- Update site -->
- <copy tofile="${project.build.directory}/site.xml"
- file="${siteTemplate}">
+ <copy tofile="${project.build.directory}/site.xml" file="${siteTemplate}">
<filterset begintoken="$${" endtoken="}">
<filtersfile file="${buildDirectory}/finalFeaturesVersions.properties" />
</filterset>
</zip>
</target>
- <!-- TARGET Build Product -->
- <target name="buildProduct"
- depends="init,setPluginPath"
- description="Builds a product">
+ <!--
+ TARGET Build Product
+ -->
+ <target name="buildProduct" depends="init" description="Builds a product">
<!-- Load provided build.properties to leave a chance to override -->
<property file="${buildConfiguration.dir}/build.properties" />
<!-- Set default properties -->
<echo message="productBuildFile=${productBuildFile}" />
<!-- Copy sources -->
- <property name="buildDirectory"
- location="${project.build.directory}/productBuild" />
+ <property name="buildDirectory" location="${project.build.directory}/productBuild" />
<mkdir dir="${buildDirectory}" />
<copy todir="${buildDirectory}" includeemptydirs="true" verbose="true">
<fileset dir="${projectDirectory}/../..">
</copy>
<!-- Execute -->
- <eclipseAnt antfile="${productBuildFile}"
- antargs="-Dbuilder=${buildConfiguration.dir} -DbuildDirectory=${buildDirectory} -DbaseLocation=${baseLocation} -Dbase=${base} -DpluginPath=${pluginPath} -DarchivePrefix=${archivePrefix} -DbuildLabel=${buildLabel} -DbuildId=${buildId} -DcollectingFolder=${collectingFolder} -DskipFetch=${skipFetch} -DskipMaps=${skipMaps} -DrunPackager=${runPackager}" />
+ <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}" />
<!-- Copy to target dir -->
<copy todir="${project.build.directory}">
</copy>
</target>
- <!-- TARGET Clean -->
- <target name="clean"
- depends="init,clean.elementBuildScript"
- description="Cleans the generated resources">
+ <!--
+ TARGET Clean
+ -->
+ <target name="clean" depends="init,clean.elementBuildScript" description="Cleans the generated resources">
<delete dir="${projectDirectory}/workspace" verbose="true" />
<delete file="${projectDirectory}/javaCompiler...args" verbose="true" />
<delete>
<delete file="${elementBuildScript}" verbose="true" />
</target>
- <!-- COMMON UTILITIES -->
+ <!--
+ TARGET eclipseTarget
+ -->
+ <target name="eclipseTarget" description="Creates an Eclipse target location based on the dependencies">
+ <taskdef resource="net/sf/antcontrib/antlib.xml" />
+ <for param="dir">
+ <dirset dir="${project.build.directory}/dependency">
+ <include name="*" />
+ </dirset>
+ <sequential>
+ <!--
+ <move todir="@{dir}" failonerror="false">
+ <fileset dir="@{dir}/eclipse">
+ <include name="**" />
+ </fileset>
+ </move>
+ <delete dir="@{dir}/eclipse" failonerror="false" quiet="true" />
+ -->
+ <copy todir="${eclipseTarget}" failonerror="false">
+ <fileset dir="@{dir}">
+ <include name="plugins/**" />
+ <include name="features/**" />
+ </fileset>
+ </copy>
+ <copy todir="${eclipseTarget}" failonerror="false">
+ <fileset dir="@{dir}/eclipse">
+ <include name="plugins/**" />
+ <include name="features/**" />
+ </fileset>
+ </copy>
+ </sequential>
+ </for>
+
+ <!-- Copy configuration from SDK -->
+ <for param="dir">
+ <dirset dir="${project.build.directory}/dependency">
+ <include name="eclipse-sdk-*" />
+ </dirset>
+ <sequential>
+ <copy todir="${eclipseTarget}" failonerror="false">
+ <fileset dir="@{dir}/eclipse">
+ <include name="configuration/**" />
+ </fileset>
+ </copy>
+ </sequential>
+ </for>
+ </target>
+
+ <!--
+ COMMON UTILITIES
+ -->
<target name="init">
- <!-- Init Base -->
+ <!-- Init Base
<property name="base" location="${eclipseBuildDir}" />
<property name="baseLocation" location="${base}/eclipse" />
- <property name="pdeBuilder"
- location="${eclipseBuildDir}/argeo-slc-pde" />
- <property name="pluginPathBase"
- location="${eclipseBuildDir}/pluginPath" />
-
+ <property name="pdeBuilder" location="${eclipseBuildDir}/argeo-slc-pde" />
+ <property name="pluginPathBase" location="${eclipseBuildDir}/pluginPath" />
+-->
<path id="pdeBuilder.launcher.classpath">
<fileset dir="${pdeBuilder}/plugins">
<include name="org.eclipse.equinox.launcher_*.jar" />
<echo message="ant.file=${ant.file}" />
<echo message="projectDirectory=${projectDirectory}" />
- <echo message="eclipseBuildDir=${eclipseBuildDir}" />
+ <!--<echo message="eclipseBuildDir=${eclipseBuildDir}" />
<echo message="base=${base}" />
<echo message="baseLocation=${baseLocation}" />
<echo message="pdeBuilder=${pdeBuilder}" />
<echo message="localBuildDir=${localBuildDir}" />
<echo message="pluginPathBase=${pluginPathBase}" />
+-->
+ <echo message="pdeBuilder=${pdeBuilder}" />
+ <echo message="eclipseTarget=${eclipseTarget}" />
<echo message="elementType=${elementType}" />
<echo message="elementId=${elementId}" />
<echo message="buildConfiguration.dir=${buildConfiguration.dir}" />
- <available file="${elementBuildScript}"
- property="elementBuildScript.exists"
- value="true" />
+ <available file="${elementBuildScript}" property="elementBuildScript.exists" value="true" />
</target>
-
+ <!--
<target name="setPluginPath">
<mkdir dir="${dependencyDir}" />
<pathconvert property="pluginPath">
</pathconvert>
<echo message="pluginPath=${pluginPath}" />
</target>
-
+-->
<!-- TARGETS TO BE CALLED WITH ANT ECLIPSE -->
<target name="eclipse.generateScripts" depends="init">
- <fail message="Property elementType has to be set"
- unless="elementType" />
- <eclipse.buildScript elements="${elementType}@${elementId}"
- buildDirectory="${buildDirectory}"
- baseLocation="${baseLocation}"
- outputUpdateJars="true"
- generateVersionsLists="true"
- pluginPath="${pluginPath}" />
+ <fail message="Property elementType has to be set" unless="elementType" />
+ <eclipse.buildScript elements="${elementType}@${elementId}" buildDirectory="${buildDirectory}" baseLocation="${eclipseTarget}" outputUpdateJars="true" generateVersionsLists="true" pluginPath="${dependencyDir}" />
</target>
<!-- MACRODEFS -->
<attribute name="antargs" />
<sequential>
<echo message="Call Eclipse Ant for file @{antfile} with args ${eclipseAntArgs} @{antargs}" />
- <java fork="true"
- classname="org.eclipse.core.launcher.Main"
- failonerror="true">
+ <java fork="true" classname="org.eclipse.core.launcher.Main" failonerror="true">
<classpath refid="pdeBuilder.launcher.classpath" />
- <arg line="-data ${project.build.directory}/workspace" />
+ <arg line="-data ${argeo-pde.dir}/workspace" />
<arg line="-application org.eclipse.ant.core.antRunner" />
<arg line="-buildfile @{antfile}" />
<arg line="${eclipseAntArgs}" />