summaryrefslogtreecommitdiff
path: root/docs/examples/plugintemplate/build.xml
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/plugintemplate/build.xml')
-rw-r--r--docs/examples/plugintemplate/build.xml265
1 files changed, 265 insertions, 0 deletions
diff --git a/docs/examples/plugintemplate/build.xml b/docs/examples/plugintemplate/build.xml
new file mode 100644
index 0000000000..0ea47b4da8
--- /dev/null
+++ b/docs/examples/plugintemplate/build.xml
@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project name="plugintemplate" default="build">
+ <!-- Edit the file plugin.properties to set
+ - scala.home
+ - plugin.name
+ - plugin.commandname
+ - plugin.description
+ - plugin.mainclass
+ - version numbers
+ -->
+ <property file="${basedir}/plugin.properties"/>
+
+ <property name="version" value="${version.major}.${version.minor}"/>
+
+ <taskdef resource="scala/tools/ant/antlib.xml">
+ <classpath>
+ <pathelement location="${scala.home}/lib/scala-compiler.jar"/>
+ <pathelement location="${scala.home}/lib/scala-library.jar"/>
+ </classpath>
+ </taskdef>
+
+
+ <!-- =================================================================
+ End-user targets
+ ================================================================== -->
+
+ <target name="build" depends="build.main"/>
+ <target name="build.all" depends="build.done"/>
+ <target name="test" depends="test.all"/>
+ <target name="guitest" depends="guitest.all"/>
+ <target name="doc" depends="doc.done"/>
+ <target name="pack" depends="pack.done"/>
+ <target name="dist" depends="dist.done"/>
+ <target name="clean" depends="clean.all"/>
+
+ <!-- =================================================================
+ Build targets
+ ================================================================== -->
+
+ <target name="build.main">
+ <mkdir dir="build/build.main"/>
+ <scalac srcdir="src"
+ destdir="build/build.main"
+ includes="**/*.scala">
+ <classpath>
+ <pathelement location="${scala.home}/lib/scala-library.jar"/>
+ <pathelement location="${scala.home}/lib/scala-compiler.jar"/>
+ </classpath>
+ </scalac>
+ </target>
+
+ <target name="build.test" depends="build.main">
+ <mkdir dir="build/build.test"/>
+ <scalac srcdir="test"
+ destdir="build/build.test"
+ includes="**/*.scala">
+ <classpath>
+ <pathelement location="${scala.home}/lib/scala-library.jar"/>
+ <pathelement location="${scala.home}/lib/scala-compiler.jar"/>
+ <pathelement location="lib/scalatest.jar"/>
+ <pathelement location="build/build.main"/>
+ </classpath>
+ </scalac>
+ </target>
+
+ <target name="build.examples" depends="build.test">
+ <mkdir dir="build/build.examples"/>
+ <scalac srcdir="doc/examples"
+ destdir="build/build.examples"
+ includes="**/*.scala">
+ <classpath>
+ <pathelement location="${scala.home}/lib/scala-library.jar"/>
+ <pathelement location="${scala.home}/lib/scala-compiler.jar"/>
+ <pathelement location="build/build.main"/>
+ </classpath>
+ </scalac>
+ </target>
+
+ <target name="build.done" depends="build.examples"/>
+
+ <!-- =================================================================
+ Test targets
+ ================================================================== -->
+
+ <target name="test.all" depends="build.done">
+ <!-- fork="true" is good for running the graphical mode -->
+ <java classname="org.scalatest.tools.Runner" fork="true">
+ <classpath>
+ <pathelement location="${scala.home}/lib/scala-compiler.jar" />
+ <pathelement location="${scala.home}/lib/scala-library.jar" />
+ <pathelement location="lib/scalatest.jar" />
+ <pathelement location="build/build.main" />
+ <pathelement location="build/build.test" />
+ </classpath>
+
+ <arg value="-p" />
+ <arg value="build/build.test" />
+
+ <arg value="-o" />
+ </java>
+ </target>
+
+ <target name="guitest.all" depends="build.done">
+ <!-- fork="true" is good for running the graphical mode -->
+ <java classname="org.scalatest.tools.Runner" fork="true">
+ <classpath>
+ <pathelement location="${scala.home}/lib/scala-compiler.jar" />
+ <pathelement location="${scala.home}/lib/scala-library.jar" />
+ <pathelement location="lib/scalatest.jar" />
+ <pathelement location="build/build.main" />
+ <pathelement location="build/build.test" />
+ </classpath>
+
+ <arg value="-p" />
+ <arg value="build/build.test" />
+
+ <arg value="-g" />
+ </java>
+ </target>
+
+ <!-- =================================================================
+ Doc targets
+ ================================================================== -->
+
+ <target name="doc.main">
+ <mkdir dir="doc/api"/>
+ <scaladoc srcdir="src"
+ destdir="doc/api"
+ includes="**/*.scala">
+ <classpath>
+ <pathelement location="${scala.home}/lib/scala-library.jar"/>
+ <pathelement location="${scala.home}/lib/scala-compiler.jar"/>
+ </classpath>
+ </scaladoc>
+ </target>
+
+ <target name="doc.done" depends="doc.main"/>
+
+ <!-- =================================================================
+ Pack targets
+ ================================================================== -->
+
+ <target name="pack.main" depends="build.done">
+ <mkdir dir="build/pack"/>
+ <jar destfile="build/pack/${plugin.name}.jar">
+ <fileset dir="build/build.main"/>
+ <fileset file="plugin.properties"/>
+ <fileset file="misc/scalac-plugin.xml"/>
+ </jar>
+ </target>
+
+ <target name="pack.src" depends="pack.main">
+ <jar destfile="build/pack/${plugin.name}-src.jar"
+ basedir="src"
+ includes="**/*.scala"/>
+ </target>
+
+ <target name="pack.done" depends="pack.src"/>
+
+ <!-- =================================================================
+ Dist targets
+ ================================================================== -->
+
+ <target name="dist.bin" depends="test.all,pack.done,doc.done">
+ <mkdir dir="build/toolscript"/>
+ <scalascript
+ file="build/toolscript/${plugin.commandname}"
+ class="${plugin.mainclass}"/>
+ <chmod dir="build/toolscript" perm="a+rx" excludes="*.bat"/>
+ </target>
+
+ <target name="dist.archive" depends="dist.bin">
+ <mkdir dir="build/dist"/>
+ <tar destfile="build/dist/${plugin.name}-${version}.tgz"
+ compression="gzip">
+ <tarfileset prefix="lib" dir="build/pack"
+ includes="${plugin.name}.jar"/>
+ <tarfileset prefix="src" dir="build/pack"
+ includes="${plugin.name}-src.jar"/>
+ <tarfileset prefix="doc/${plugin.name}" dir="doc"
+ includes="README"/>
+ <tarfileset prefix="doc/${plugin.name}" dir="doc"
+ includes="examples/**"/>
+ <tarfileset prefix="doc/${plugin.name}" dir="doc"
+ includes="api/**"/>
+ <tarfileset prefix="bin" dir="build/toolscript"
+ includes="${plugin.commandname}" mode="755"/>
+ <tarfileset prefix="bin" dir="build/toolscript"
+ includes="${plugin.commandname}.bat"/>
+ <tarfileset prefix="misc/scala-devel/plugins" dir="build/pack"
+ includes="${plugin.name}.jar"/>
+ </tar>
+ </target>
+
+ <target name="dist.sbaz" depends="dist.archive">
+ <sbaz file="build/dist/${plugin.name}-${version}.sbp"
+ adfile="build/dist/${plugin.name}-${version}.advert"
+ name="${plugin.name}"
+ version="${version}"
+ depends="scala-devel"
+ desc="${plugin.description}"
+ link="${plugin.sbazbaseurl}/${plugin.name}-${version}.sbp">
+ <libset dir="build/pack" includes="${plugin.name}.jar"/>
+ <srcset dir="build/pack" includes="${plugin.name}-src.jar"/>
+ <docset dir="doc" includes="README"/>
+ <docset dir="doc" includes="examples/**"/>
+ <docset dir="doc" includes="api/**"/>
+ <binset dir="build/toolscript"/>
+ <looseset destination="misc/scala-devel/plugins">
+ <fileset file="build/pack/${plugin.name}.jar"/>
+ </looseset>
+ </sbaz>
+ </target>
+
+ <target name="dist.done" depends="dist.sbaz"/>
+
+ <!-- =================================================================
+ Local installation
+ ================================================================== -->
+
+ <target name="install" depends="dist.done">
+ <exec executable="sbaz">
+ <arg line="-v install -f build/dist/${plugin.name}-${version}.sbp"/>
+ </exec>
+ </target>
+
+ <target name="uninstall">
+ <exec executable="sbaz">
+ <arg line="remove ${plugin.name}"/>
+ </exec>
+ </target>
+
+ <!-- =================================================================
+ Clean targets
+ ================================================================== -->
+
+ <target name="clean.build">
+ <delete dir="build/build.main" includeemptydirs="yes"
+ quiet="yes" failonerror="no"/>
+ <delete dir="build/build.test" includeemptydirs="yes"
+ quiet="yes" failonerror="no"/>
+ <delete dir="build/build.examples" includeemptydirs="yes"
+ quiet="yes" failonerror="no"/>
+ </target>
+
+ <target name="clean.pack" depends="clean.build">
+ <delete dir="build/pack" includeemptydirs="yes"
+ quiet="yes" failonerror="no"/>
+ </target>
+
+ <target name="clean.dist" depends="clean.pack">
+ <delete dir="build/dist" includeemptydirs="yes"
+ quiet="yes" failonerror="no"/>
+ <delete dir="build/toolscript" includeemptydirs="yes"
+ quiet="yes" failonerror="no"/>
+ </target>
+
+ <target name="clean.doc">
+ <delete dir="doc/api" includeemptydirs="yes"
+ quiet="yes" failonerror="no"/>
+ </target>
+
+ <target name="clean.all" depends="clean.dist,clean.doc"/>
+</project>