imakerplugin/plugin-build-template.xml
changeset 0 61163b28edca
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imakerplugin/plugin-build-template.xml	Tue Jan 12 13:17:53 2010 -0600
@@ -0,0 +1,99 @@
+<!--****************************************************************************
+ * Configuration tool plugin build template
+ * This ant pluging-build-template.xml will contain the common targets
+ * to build a eclipse plugin
+ ****************************************************************************-->
+ 
+<project name="${pluginName}" default="all">
+ 	<property file="../common.properties"/>
+  <property file="../${common.buildproperties}"/>
+  <property file="build.properties"/>
+  <property file="plugin.properties"/>
+  <fileset id="plugin-resources" dir="." includes="${bin.includes}"/>
+
+
+ <path id="project.class.path">
+    <!-- add lib jars to classpath -->
+    <fileset dir="${common.plugin-lib}" casesensitive="yes">
+      <include name="**/*.jar"/>
+    </fileset>
+    <!-- add also the generated Configuration Tool jars to classpath -->
+    <fileset dir="${common.plugin-dist}" casesensitive="yes">
+      <include name="**/*.jar"/>
+    </fileset>
+  </path>
+
+  <!-- Gets the svnversion with the svnversion command and stores the output to svnrevision. 
+       The target is executed only if the svnrevision has not been set. 
+       -->
+  <target name="get-svnversion" unless="common.svnversion">
+    <exec dir="." executable="svnversion" outputproperty="common.svnversion" />
+    <echo message="svnversion from svn command = ${common.svnversion}" />
+  </target>
+  <!-- Sets the buildate property if it has not been set by the common property file -->
+  <target name="get-builddate" unless="common.builddate">
+    <tstamp prefix="build"/>
+    <property name="common.builddate" value="${build.DSTAMP}"/>
+  </target>
+
+    <!-- generate a build property file -->
+  <target name="update-properties" depends="get-svnversion">
+    <tstamp prefix="build"/>
+    <echo file="${common.buildproperties}">
+    common.svnversion     =${svnrevision}
+    </echo>
+  <!-- replace the possible : characters because the do not work in filenames-->
+    <replace file="${common.buildproperties}" token=":"/>
+    <property file="${common.buildproperties}"/>
+  </target>
+
+
+  <!-- All target will clean and then commit all the build steps-->
+	<target name="all" depends="clean, build"/> 
+	
+	<!-- Build target will commit all the build steps and can be used for incremental 
+	building, because ant recognized changed files -->
+	<target name="build" depends="init, resource, compile, jar"/> 
+	
+  <target name="clean">
+    <delete dir="${common.plugin-target}" quiet="true" />
+  </target>
+
+  <target name="info">
+    <echoproperties/>
+  </target>    
+
+  <target name="init" depends="get-svnversion,get-builddate">
+    <mkdir dir="${common.plugin-target}/bin" />
+    <mkdir dir="${common.plugin-dist}" />
+  </target>
+    
+  <target name="resource" depends="init">
+    <copy todir="${common.plugin-target}/bin/">
+      <fileset refid="plugin-resources" /> 
+    </copy>
+    <manifest file="${common.plugin-target}/bin/META-INF/MANIFEST.MF" mode="update">
+    	<attribute name="Bundle-FOO" value="${common.plugin-version}"/>
+    	<attribute name="Bundle-Version" value="${common.plugin-version}"/>
+    	<attribute name="Bundle-Date" value="${common.builddate}"/>
+    	<attribute name="Bundle-RepositoryVersion" value="${common.svnversion}"/>
+    </manifest>
+    
+  </target>
+
+  <target name="compile" depends="init"
+    description="compile the source">
+    <!-- Compile the java code from ${src} into ${build} -->
+    <javac srcdir="${source..}" destdir="${common.plugin-target}/bin">
+      <classpath refid="project.class.path"/>
+    </javac>
+  </target>
+
+  <target name="jar" depends="compile,resource">
+  	<jar jarfile="${common.plugin-dist}/${pluginName}_${common.plugin-version}.jar" 
+         basedir="${common.plugin-target}/bin"
+         manifest="${common.plugin-target}/bin/META-INF/MANIFEST.MF">
+    </jar>
+  </target>
+    
+</project>
\ No newline at end of file