Ben Konrath 02a0b82
Index: templates/package-build/build.properties
Ben Konrath 02a0b82
===================================================================
Ben Konrath 02a0b82
RCS file: templates/package-build/build.properties
Ben Konrath 02a0b82
diff -N templates/package-build/build.properties
Ben Konrath 02a0b82
--- /dev/null	1 Jan 1970 00:00:00 -0000
Ben Konrath 02a0b82
+++ templates/package-build/build.properties	1 Jan 1970 00:00:00 -0000
Ben Konrath 02a0b82
@@ -0,0 +1,12 @@
Ben Konrath 02a0b82
+buildDirectory=${sourceDirectory}/build
Ben Konrath 02a0b82
+buildLabel=rpmBuild
Ben Konrath 02a0b82
+archivePrefix=eclipse
Ben Konrath 02a0b82
+skipFetch=true
Ben Konrath 02a0b82
+javacFailOnError=true
Ben Konrath 02a0b82
+collectingFolder=eclipse
Ben Konrath 02a0b82
+archivesFormat=*,*,*-zip
Ben Konrath 02a0b82
+zipargs=-y
Ben Konrath 02a0b82
+javacDebugInfo=true
Ben Konrath 02a0b82
+archiveName=${id}.zip
Ben Konrath 02a0b82
+runPackager=false
Andrew Overholt eb1eea2
+baseLocation=/usr/share/eclipse
Ben Konrath 02a0b82
Index: templates/package-build/customTargets-assemble-target.xml
Ben Konrath 02a0b82
===================================================================
Ben Konrath 02a0b82
RCS file: templates/package-build/customTargets-assemble-target.xml
Ben Konrath 02a0b82
diff -N templates/package-build/customTargets-assemble-target.xml
Ben Konrath 02a0b82
--- /dev/null	1 Jan 1970 00:00:00 -0000
Ben Konrath 02a0b82
+++ templates/package-build/customTargets-assemble-target.xml	1 Jan 1970 00:00:00 -0000
Ben Konrath 02a0b82
@@ -0,0 +1,12 @@
Ben Konrath 02a0b82
+<project>
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	<target name="assemble.@id@">
Ben Konrath 02a0b82
+		<ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+</project>
Ben Konrath 02a0b82
Index: templates/package-build/customTargets.xml
Ben Konrath 02a0b82
===================================================================
Ben Konrath 02a0b82
RCS file: templates/package-build/customTargets.xml
Ben Konrath 02a0b82
diff -N templates/package-build/customTargets.xml
Ben Konrath 02a0b82
--- /dev/null	1 Jan 1970 00:00:00 -0000
Ben Konrath 02a0b82
+++ templates/package-build/customTargets.xml	1 Jan 1970 00:00:00 -0000
Ben Konrath 02a0b82
@@ -0,0 +1,144 @@
Ben Konrath 02a0b82
+<project name="Build specific targets and properties" default="noDefault">
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	<fail unless="type" message="Please set the ${type} property to 'feature', 'plugin' or 'fragment'." />
Ben Konrath 02a0b82
+	<fail unless="id" message="Please set the ${id} property to the feature, plugin or fragment id of the plugin you are building." />
Ben Konrath 02a0b82
+	<fail unless="sourceDirectory" message="Please set the ${sourceDirectory} property to the directory that has the source plugins." />
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+		
Ben Konrath 02a0b82
+	<copy file="${builder}/customTargets-assemble-target.xml" tofile="${buildDirectory}/customTargets-${id}-assemble-target.xml" /> 
Ben Konrath 02a0b82
+	<replace file="${buildDirectory}/customTargets-${id}-assemble-target.xml" token="@id@" value="${id}" />
Ben Konrath 02a0b82
+	<import file="${buildDirectory}/customTargets-${id}-assemble-target.xml" />
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="allElements">
Ben Konrath 02a0b82
+		<ant antfile="${genericTargets}" target="${target}">
Ben Konrath 02a0b82
+			<property name="type" value="${type}" />
Ben Konrath 02a0b82
+			<property name="id" value="${id}" />
Ben Konrath 02a0b82
+		</ant>
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="getMapFiles">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	<target name="clean" unless="noclean">
Ben Konrath 02a0b82
+		<antcall target="allElements">
Ben Konrath 02a0b82
+			<param name="target" value="cleanElement" />
Ben Konrath 02a0b82
+		</antcall>
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="preSetup">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="postSetup">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="preFetch">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="postFetch">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="preGenerate">
Ben Konrath 02a0b82
+		
Ben Konrath 02a0b82
+   		plugin projects to be in the 'plugins' directory. The build infrastructure 
Ben Konrath 02a0b82
+		normally arranges the projects during the fetch stage. Since we aren't doing
Ben Konrath 02a0b82
+ 		the fetch stage, we have to manually arrange the files -->
Ben Konrath 02a0b82
+		<exec dir="${builder}" executable="/bin/sh">
Ben Konrath 02a0b82
+			<arg line="prepare-build-dir.sh ${sourceDirectory} ${buildDirectory}" />
Ben Konrath 02a0b82
+		</exec> 
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="postGenerate">
Ben Konrath 02a0b82
+		<antcall target="clean" />
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="preProcess">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="postProcess">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="preAssemble">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="postAssemble">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="prePackage">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="postPackage">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="postBuild">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="test">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="publish">
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	
Ben Konrath 02a0b82
+	<target name="noDefault">
Ben Konrath 02a0b82
+		<echo message="You must specify a target when invoking this file" />
Ben Konrath 02a0b82
+	</target>
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+</project>
Ben Konrath 02a0b82
Index: templates/package-build/prepare-build-dir.sh
Ben Konrath 02a0b82
===================================================================
Ben Konrath 02a0b82
RCS file: templates/package-build/prepare-build-dir.sh
Ben Konrath 02a0b82
diff -N templates/package-build/prepare-build-dir.sh
Ben Konrath 02a0b82
--- /dev/null	1 Jan 1970 00:00:00 -0000
Ben Konrath 02a0b82
+++ templates/package-build/prepare-build-dir.sh	1 Jan 1970 00:00:00 -0000
Ben Konrath 02a0b82
@@ -0,0 +1,83 @@
Ben Konrath 02a0b82
+#!/bin/sh
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+make_links()
Ben Konrath 02a0b82
+{
Ben Konrath 02a0b82
+  TYPE=$1
Ben Konrath 02a0b82
+  TYPEDIR=$2
Ben Konrath 02a0b82
+  shift; shift;
Ben Konrath 02a0b82
+  XMLFILES=$@
Ben Konrath 02a0b82
+  
Ben Konrath 02a0b82
+  CURBUILDFILE=$BUILDDIR/tmp/$TYPE-build.xml
Ben Konrath 02a0b82
+  cat $BUILDFILE | sed "s|@type@|$TYPE|" > $CURBUILDFILE
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+  for f in $XMLFILES; do
Ben Konrath 02a0b82
+    PROJECTDIR=$(dirname $f)
Ben Konrath 02a0b82
+    PROJECTNAME=$(ant -Dbasedir=$PROJECTDIR -f $CURBUILDFILE 2>&1 | grep echo | cut --delimiter=' ' -f 7)
Ben Konrath 02a0b82
+    if [ -z $PROJECTNAME ]; then
Ben Konrath 02a0b82
+      if [ ! -e $PROJECTDIR/META-INF/MANIFEST.MF ]; then
Ben Konrath 02a0b82
+        echo "ERROR: could not determine the feature id for $PROJECTDIR"
Ben Konrath 02a0b82
+        exit 1
Ben Konrath 02a0b82
+      fi
Ben Konrath 02a0b82
+      PROJECTNAME=$(grep Bundle-SymbolicName $PROJECTDIR/META-INF/MANIFEST.MF | cut --delimiter=';' -f 1 | cut --delimiter=' ' -f 2)
Ben Konrath 02a0b82
+      if [ -z $PROJECTNAME  ]; then
Ben Konrath 02a0b82
+        echo "ERROR: could not determine the feature id for $PROJECTDIR"
Ben Konrath 02a0b82
+        exit 1
Ben Konrath 02a0b82
+      fi
Ben Konrath 02a0b82
+    fi
Ben Konrath 02a0b82
+    
Ben Konrath 02a0b82
+    echo "  making symlink: $BUILDDIR/$TYPEDIR/$PROJECTNAME -> $PROJECTDIR"
Ben Konrath 02a0b82
+    ln -sf $PROJECTDIR $BUILDDIR/$TYPEDIR/$PROJECTNAME 
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+  done
Ben Konrath 02a0b82
+}
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+if [ $# -ne 2 ]; then 
Ben Konrath 02a0b82
+  echo "usage: $0 <path to source dir> <path to build dir>"
Ben Konrath 02a0b82
+  exit 1
Ben Konrath 02a0b82
+fi
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+if [ ! -d $1 ]; then
Ben Konrath 02a0b82
+  echo "usage: $0 <path to source dir> <path to build dir>"
Ben Konrath 02a0b82
+  exit 1
Ben Konrath 02a0b82
+fi
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+SOURCEDIR=$1
Ben Konrath 02a0b82
+BUILDDIR=$2
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+echo "preparing files in $1 for buildfile generation ..."
Ben Konrath 02a0b82
+mkdir -p $BUILDDIR
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+# make some ant build files to extract the id from the feature.xml, plugin.xml or the fragment.xml
Ben Konrath 02a0b82
+mkdir -p $BUILDDIR/tmp
Ben Konrath 02a0b82
+BUILDFILE=$BUILDDIR/tmp/build.xml
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+echo "<project default=\"main\">
Ben Konrath 02a0b82
+	<target name=\"main\">
Ben Konrath 02a0b82
+               	<xmlproperty file=\"@type@.xml\" collapseAttributes=\"true\"/>
Ben Konrath 02a0b82
+		<fail unless=\"@type@.id\" message=\"feature.id not set\"/>
Ben Konrath 02a0b82
+               	<echo message=\"\${@type@.id}\" />
Ben Konrath 02a0b82
+        </target>
Ben Konrath 02a0b82
+</project>" > $BUILDFILE
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+# find the feature.xml, plugin.xml and fragment.xml files
Ben Konrath 02a0b82
+FEATURES=$(find $SOURCEDIR -name feature.xml)
Ben Konrath 02a0b82
+PLUGINS=$(find $SOURCEDIR -name plugin.xml) 
Ben Konrath 02a0b82
+FRAGMENTS=$(find $SOURCEDIR -name fragment.xml) 
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+# make the directories eclipse is expecting 
Ben Konrath 02a0b82
+echo "  making the 'features' and 'plugins' directories"
Ben Konrath 02a0b82
+mkdir -p $BUILDDIR/features $BUILDDIR/plugins
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+# make symlinks for the features
Ben Konrath 02a0b82
+make_links feature features $FEATURES
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+# make the symlinks for plugins
Ben Konrath 02a0b82
+make_links plugin plugins $PLUGINS
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+# make the symlinks for fragments - they go in the plugins directory as well
Ben Konrath 02a0b82
+make_links fragment plugins $FRAGMENTS
Ben Konrath 02a0b82
+
Ben Konrath 02a0b82
+rm -rf $BUILDDIR/tmp
Ben Konrath 02a0b82
+echo done