Adding the pluginbuilder files that are used in the nightly build process.
[phpeclipse.git] / utilities / pluginbuilder / build.xml
diff --git a/utilities/pluginbuilder/build.xml b/utilities/pluginbuilder/build.xml
new file mode 100644 (file)
index 0000000..bd9b6b5
--- /dev/null
@@ -0,0 +1,197 @@
+<!--  This script will not be uploaded to the server.\r
+      PLEASE DO NOT MODIFY \r
+      If you modify this script it is likely that the build will not work on the server\r
+-->\r
+<project name="Build Facade" default="main">\r
+       <taskdef resource="org/pluginbuilder/anttasks/pluginbuildertasks.properties" classpath="build-files/pluginbuilder-anttasks.jar" />\r
+       \r
+       <property file="build_local.properties" />\r
+       <property name="eclipse.installation.dir" value="${eclipseDir}"/>\r
+       <property name="eclipse.local.tar.non.server" value="${test.eclipse.zip}"/>\r
+       <import file="build-files/build_shared.xml"/>\r
+       \r
+       <target name="-properties">             \r
+               \r
+               <!-- versioning -->\r
+               <property name="build.version" value="HEAD"/>\r
+               <property file="releases/${build.version}.properties" />\r
+               <tstamp>\r
+                     <format property="version.qualifier" pattern="yyyyMMddHHmm" timezone="GMT" unit="minute"/>\r
+               </tstamp>\r
+               \r
+               <property name="buildTypePresentation" value=""/>\r
+               <property name="version.full" value="${version}.${version.qualifier}${buildTypePresentation}"/>\r
+\r
+               <!-- includes -->\r
+               <property file="build_local.properties" />\r
+               <property file="pluginbuilder.config" />\r
+               \r
+               <!-- set defaults -->\r
+               <property name="buildTarget" value="main"/>\r
+               <property name="verboseAnt" value="-Ddummy=true"/>\r
+               \r
+               <!-- check if clean should be called -->\r
+               <condition property="is.clean">\r
+                       <or>\r
+                               <equals arg1="main" arg2="${buildTarget}" trim="true"/>\r
+                               <equals arg1="fetch" arg2="${buildTarget}" trim="true"/>\r
+                       </or>\r
+               </condition>\r
+                               \r
+       </target>\r
+               \r
+       <target name="-prepare.build.host">\r
+\r
+               <antcall target="unpack.eclipse"/>\r
+               \r
+               <available type="dir" file="${eclipseDir}/plugins" property="eclipseDir.plugins.exists"/>\r
+               <fail message="Could not find directory ${eclipseDir}/plugins. Please check eclipseDir in build_local.properties" unless="eclipseDir.plugins.exists"/>\r
+               \r
+               <!-- determine buildfiles -->\r
+               <BundleFileLocator eclipseInstallationRoot="${eclipseDir}" bundleId="org.eclipse.pde.build" filePath="scripts/build.xml" property="regularbuildfile" />         \r
+               <dirname file="${regularbuildfile}" property="scriptdir"/>\r
+               <property name="productbuildfile" value="${scriptdir}/productBuild/productBuild.xml"/>\r
+       \r
+               <!-- determine launcher -->\r
+               <BundleFileLocator eclipseInstallationRoot="${eclipseDir}" bundleId="org.eclipse.equinox.launcher" property="equinoxjar" />             \r
+\r
+       </target>\r
+       \r
+       <target name="-clean" if="is.clean">\r
+               <echo level="info" message="Cleaning directory ${buildDirectory}"/>\r
+               <delete dir="${buildDirectory}" verbose="false"/>\r
+               <mkdir dir="${buildDirectory}"/>\r
+       </target>\r
+       \r
+       <target name="-build" depends="-properties,-clean,-prepare.build.host">\r
+               <condition property="no.rcp.build" value="true">\r
+                       <not>\r
+                               <equals arg1="${pluginbuilder.is.rcpbuild}" arg2="true"/>\r
+                       </not>\r
+               </condition>\r
+               <antcall target="-build.rcp.internal"/>\r
+               <antcall target="-build.internal">\r
+                       <param name="buildfile" value="${regularbuildfile}"/>\r
+                       <param name="varjvmargs1" value="-Dconfigs=*,*,*"/>\r
+                       <param name="varjvmargs2" value="-Ddummy2=2"/>\r
+           </antcall>\r
+       </target>\r
+       \r
+       <target name="-build.rcp.internal" unless="no.rcp.build">\r
+               <antcall target="-build.internal"> \r
+                       <param name="buildfile" value="${productbuildfile}"/>\r
+                       <param name="varjvmargs1" value="-Dno.postBuild=true"/>\r
+                       <param name="varjvmargs2" value="-Dbuild.container.feature=true"/>\r
+               </antcall>\r
+       </target>\r
+       \r
+       <target name="rcp" unless="no.rcp.build" depends="-properties,-clean,-prepare.build.host" description="Build RCP">\r
+               <condition property="no.rcp.build" value="true">\r
+                       <not>\r
+                               <equals arg1="${pluginbuilder.is.rcpbuild}" arg2="true"/>\r
+                       </not>\r
+               </condition>\r
+               <fail message="Please enable and configure an RCP build in the Plug-in Builder Editor before calling this target." if="no.rcp.build"/>\r
+               <antcall target="-build.internal">\r
+                       <param name="buildfile" value="${productbuildfile}"/>\r
+                       <param name="varjvmargs1" value="-Dno.postBuild=true"/>\r
+                       <param name="varjvmargs2" value="-Dbuild.container.feature=true"/>\r
+       </antcall>\r
+       </target>\r
+\r
+       <target name="-build.internal">\r
+               <property name="buildResultsDirectory" value="${buildDirectory}/results" />\r
+               <java classname="org.eclipse.equinox.launcher.Main" fork="true" \r
+                       failonerror="true" errorproperty="build.stderr">\r
+                       <arg value="-ws" />\r
+                       <arg value="${ws}" />\r
+                       <arg value="-os" />\r
+                       <arg value="${os}" />\r
+                       <arg value="-application" />\r
+                       <arg value="org.eclipse.ant.core.antRunner" />\r
+                       <arg value="-buildfile" />\r
+                       <arg value="${buildfile}" />\r
+                       <arg value="${buildTarget}" />\r
+                       <arg value="-data" />\r
+                       <arg value="${buildDirectory}/workspace" />\r
+                       <arg value="${verboseAnt}"/>\r
+                       <jvmarg value="-Dbasews=${ws}" />\r
+                       <jvmarg value="-Dbaseos=${os}" />\r
+                       <jvmarg value="-Dbasearch=${arch}" />\r
+                       <jvmarg value="-Dbuilder=${buildHome}/build-files" />\r
+                       <jvmarg value="-DjavacFailOnError=true"/>\r
+                       <jvmarg value="-DbuildDirectory=${buildDirectory}"/>\r
+                       <jvmarg value="-DbuildResultsDirectory=${buildResultsDirectory}"/>\r
+                       <jvmarg value="-DbaseLocation=${eclipseDir}"/>\r
+                       <jvmarg value="-DbuildHome=${buildHome}"/>\r
+                       <jvmarg value="-Dversion.full=${version.full}"/>\r
+                       <jvmarg value="-Dversion.qualifier=${version.qualifier}${buildTypePresentation}"/>\r
+                       <jvmarg value="-DbuildType=${buildType}"/>\r
+                       <jvmarg value="-Dphpeclipse_build_target=${phpeclipse_build_target}" />\r
+                       <jvmarg value="-DfetchTag=${fetchTag}"/>\r
+                       <jvmarg value="${varjvmargs1}"/>\r
+                       <jvmarg value="${varjvmargs2}"/>\r
+       \r
+                <jvmarg value="-Dtest.eclipse.zip=${test.eclipse.zip}"/>\r
+\r
+                       <classpath>\r
+                               <pathelement location="${equinoxjar}" />\r
+                       </classpath>\r
+               </java>\r
+           <echo>${build.stderr}</echo>\r
+               <condition property="is.build.error" value="true">\r
+                       <contains string="${build.stderr}" substring="BUILD FAILED"/>\r
+               </condition>\r
+               <fail message="PDE Build failed" if="is.build.error"/>\r
+       </target>\r
+       \r
+       <target name="main-cc"\r
+                       description="This target is suited to be run from cruisecontrol. The property 'label' is expected to be set from cruisecontrol.">\r
+                        <exec executable="date" outputproperty="label">\r
+        <arg value="+%Y%m%d%H%M" />\r
+        </exec>\r
+               <property name="version.full" value="${label}"/> \r
+               <!-- TODO: extract qualifier correctly from label -->\r
+               <property name="version.qualifier" value="${label}"/>           \r
+               <antcall target="-build"/>\r
+       </target>\r
+       \r
+       <target name="main" description="Run the main target of customTargets.xml.">\r
+               <property name="buildTarget" value="main"/>\r
+               <antcall target="-build"/>\r
+       </target>\r
+\r
+       <target name="fetch" description="Run the fetch target of customTargets.xml.">\r
+               <property name="buildTarget" value="fetch"/>\r
+               <antcall target="-build"/>\r
+       </target>       \r
+       \r
+       <target name="generate" description="Run the generate target of customTargets.xml.">\r
+               <property name="buildTarget" value="generate"/>\r
+               <antcall target="-build"/>\r
+       </target>\r
+       \r
+       <target name="process" description="Run the process target of customTargets.xml.">\r
+               <property name="buildTarget" value="process"/>\r
+               <antcall target="-build"/>\r
+       </target>\r
+                       \r
+       <target name="assemble" description="Run the assemble target of customTargets.xml.">\r
+               <property name="buildTarget" value="assemble"/>\r
+               <antcall target="-build"/>\r
+       </target>\r
+       \r
+       <target name="postBuild" description="Run the postBuild target of customTargets.xml.">\r
+               <property name="buildTarget" value="postBuild"/>\r
+               <antcall target="-build"/>\r
+       </target>\r
+       \r
+       <target name="buildProperties" description="Print out derived properties for the current build." depends="-properties">\r
+               <fail message="You have to set the property 'buildPropertiesFile' if calling buildProperties" unless="buildPropertiesFile"/>\r
+               <condition property="subdir" value="nightly" else="releases">\r
+                       <equals arg1="${buildType}" arg2="N"/>\r
+               </condition>\r
+               <echo file="${buildPropertiesFile}">relativeServerResultsDir: ${subdir}/${version.full}</echo>\r
+       </target>\r
+\r
+</project>\r