File build.xml of Package jaxodraw
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2003-2006, Daniele Binosi and Lukas Theussl
Copyright (C) 2007-2008, Daniele Binosi, Lukas Theussl and Christian Kaufhold
See the file LICENSE in the source distribution home directory
for a full copy of the GPL (GNU General Public License).
This file is part of JaxoDraw.
JaxoDraw is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
JaxoDraw is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-->
<project name="JaxoDraw" default="jar" basedir=".">
<description>
Ant build script for JaxoDraw.
</description>
<property file="build.properties"/>
<!-- set global properties for this build -->
<property name="name" value="JaxoDraw"/>
<property name="buildname" value="jaxodraw"/>
<property name="version" value="${jaxodraw.version}"/>
<property name="release" value="${jaxodraw.release}"/>
<property name="fullname" value="${buildname}-${version}-${release}"/>
<property name="dirname" value="${name}-${version}-${release}"/>
<property name="package" value="net.sf.jaxodraw"/>
<property name="package.dir" value="net/sf/jaxodraw"/>
<property name="src.dir" location="src"/>
<property name="doc.dir" location="${src.dir}/doc"/>
<property name="java.dir" location="${src.dir}/main/java"/>
<property name="test.dir" location="${src.dir}/test/java"/>
<property name="resource.dir" location="${src.dir}/main/resources"/>
<property name="test.resource.dir" location="${src.dir}/test/resources"/>
<property name="build.dir" location="build"/>
<property name="jarfile" value="${build.dir}/${fullname}.jar"/>
<property name="report.dir" location="${build.dir}/reports"/>
<property name="javadoc.dir" location="${build.dir}/javadoc"/>
<property name="javadoc.jar" value="${build.dir}/${fullname}_javadoc.jar"/>
<property name="dist.dir" location="dist"/>
<patternset id="dist.files">
<include name="README.txt"/>
<include name="**/README"/>
<include name="**/BUGS"/>
<include name="**/CHANGELOG"/>
<include name="**/TODO"/>
<include name="**/*LICENSE"/>
</patternset>
<patternset id="build.files">
<include name="README.txt"/>
<include name="build.xml"/>
<include name="build.properties"/>
<include name="project.xml"/>
<include name="project.properties"/>
</patternset>
<target name="check" depends="-init" description="print some properties">
<echo message="basedir = ${basedir}"/>
<echo message="fullname = ${fullname}"/>
<echo message="ant.home = ${ant.home}"/>
<echo message="ant.version = ${ant.version}"/>
<echo message="ant.java.version = ${ant.java.version}"/>
<echo message="java.class.path = ${java.class.path}"/>
</target>
<target name="-init">
<available
property="jdk14"
classname="java.awt.KeyboardFocusManager">
</available>
<available
file="${jarfile}"
type="file"
property="jarfile.exists">
</available>
<condition property="testcase.set">
<isset property="testcase"/>
</condition>
</target>
<target name="test"
description="runs a JUnit test suite">
<antcall target="compile-test"/>
<mkdir dir="${report.dir}"/>
<junit
showoutput="yes"
printsummary="yes"
fork="yes"
forkmode="once"
haltonfailure="yes"
tempdir="${report.dir}">
<classpath>
<pathelement location="${build.dir}"/>
<pathelement path="${java.class.path}"/>
</classpath>
<formatter type="xml"/>
<formatter type="brief" usefile="false"/>
<batchtest todir="${report.dir}">
<fileset dir="${test.dir}">
<include name="**/*Test.java"/>
<exclude name="**/Abstract*Test.java"/>
</fileset>
</batchtest>
</junit>
</target>
<target name="test-report" depends="test"
description="Generates a HTML report of the JUnit test suite">
<junitreport todir="${report.dir}">
<fileset dir="${report.dir}">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${report.dir}"/>
</junitreport>
</target>
<target name="test:single" depends="-init"
description="runs a single JUnit test (specify a 'testcase' property)">
<fail unless="testcase.set">
You need to provide a testcase (use eg: -Dtestcase=JaxoDraw.JaxoDrawTest)!
</fail>
<antcall target="compile-test"/>
<mkdir dir="${report.dir}"/>
<junit
showoutput="yes"
printsummary="yes"
fork="yes"
forkmode="once"
haltonfailure="yes"
tempdir="${report.dir}">
<classpath>
<pathelement location="${build.dir}"/>
<pathelement path="${java.class.path}"/>
</classpath>
<formatter type="xml"/>
<formatter type="brief" usefile="false"/>
<test name="${testcase}" todir="${report.dir}"/>
</junit>
</target>
<target name="compile-test" depends="-init" description="compiles tests">
<fail unless="jdk14">
You need at least version 1.4.1 of the Java SDK to compile JaxoDraw!
</fail>
<antcall target="copy-resources"/>
<antcall target="copy-test-resources"/>
<javac
optimize="yes"
nowarn="off"
debug="true"
deprecation="on"
source="1.5"
target="1.5"
includeAntRuntime="no"
sourcepath="${java.dir}"
classpath="${java.class.path}"
srcdir="${test.dir}"
destdir="${build.dir}">
<compilerarg value="-Xlint"/>
</javac>
</target>
<target name="compile" depends="-init"
description="compiles the sources">
<fail unless="jdk14">
You need at least version 1.4.1 of the Java SDK to compile JaxoDraw!
</fail>
<antcall target="prepare"/>
<javac
optimize="yes"
nowarn="off"
debug="true"
deprecation="on"
source="1.5"
target="1.5"
includeAntRuntime="no"
srcdir="${java.dir}"
destdir="${build.dir}">
<compilerarg value="-Xlint"/>
</javac>
</target>
<target name="jar" depends="compile"
description="delete any existing jar file and generate a new one">
<delete file="${jarfile}"/>
<jar
jarfile="${jarfile}"
basedir="${build.dir}"
manifest="${resource.dir}/META-INF/MANIFEST.MF">
</jar>
</target>
<target name="build" depends="jar"
description="build a new executable jar file"></target>
<target name="jaxodraw" depends="-init"
description="runs jaxodraw">
<antcall target="-create-jar"/>
<java jar="${jarfile}" fork="true" failonerror="true">
<arg line="${jaxodraw.cmd.args}"/>
</java>
</target>
<target name="profile" depends="-init" description="Profile Project">
<fail unless="netbeans.home">This target can only run inside the NetBeans IDE.</fail>
<antcall target="-create-jar"/>
<nbprofiledirect>
<classpath><pathelement location="${java.class.path}"/></classpath>
</nbprofiledirect>
<java jar="${jarfile}" fork="true" failonerror="true">
<jvmarg value="${profiler.info.jvmargs.agent}"/>
</java>
</target>
<target name="-create-jar" unless="jarfile.exists">
<antcall target="jar"/>
</target>
<target name="clean"
description="removes the ${build.dir} directory">
<delete dir="${build.dir}"/>
</target>
<target name="clean-all" depends="clean"
description="calls clean, removes ${dist.dir}">
<delete dir="${dist.dir}"/>
</target>
<target name="javadoc" depends="-init"
description="generates the javadoc API in the ${javadoc.dir} directory">
<fail unless="javadoc.api">
Please edit the `build.properties` file to set the path to your javadoc API!
</fail>
<mkdir dir="${javadoc.dir}"/>
<javadoc packagenames="${package}.*"
sourcepath="${java.dir}"
destdir="${javadoc.dir}"
breakiterator="yes"
author="true"
version="true"
use="false"
windowtitle="JaxoDraw API">
<doctitle><![CDATA[<h1>JaxoDraw</h1>]]></doctitle>
<bottom><![CDATA[${javadoc.bottom}]]></bottom>
<tag name="todo" scope="all" description="To do:"/>
<link href="${javadoc.api}"/>
</javadoc>
</target>
<target name="javadoc:jar" depends="javadoc"
description="create a jar file containing the javadocs">
<jar jarfile="${javadoc.jar}" basedir="${javadoc.dir}"/>
</target>
<target name="usage"
description="print usage information">
<echo message=" Type 'ant -h' for general help on Ant."/>
<echo message=" Type 'ant -p' for a list of targets in this build file."/>
</target>
<target name="help" depends="usage" description="print usage information"/>
<target name="all" depends="jar, javadoc"
description="calls jar and javadoc targets">
</target>
<target name="dist-src" depends="-init,clean,test"
description="builds the source distribution">
<antcall target="clean"/>
<mkdir dir="${dist.dir}"/>
<antcall target="-make-src"/>
</target>
<target name="-make-src">
<antcall target="-fixEOL"/>
<tar destfile="${dist.dir}/${fullname}_src.tar.gz"
longfile="gnu"
compression="gzip">
<tarfileset dir="${basedir}"
prefix="${dirname}/"
includes="src/">
<patternset refid="build.files"/>
</tarfileset>
</tar>
</target>
<target name="dist-bin" depends="-init,clean,test"
description="builds the binary package for distribution">
<antcall target="clean"/>
<mkdir dir="${dist.dir}"/>
<antcall target="-make-bin"/>
</target>
<target name="-make-bin">
<antcall target="-fixEOL"/>
<antcall target="jar"/>
<tar destfile="${dist.dir}/${fullname}_bin.tar.gz"
longfile="gnu"
compression="gzip">
<tarfileset dir="${basedir}"
prefix="${dirname}">
<patternset refid="dist.files"/>
</tarfileset>
<tarfileset dir="${build.dir}"
prefix="${dirname}"
includes="${fullname}.jar"/>
</tar>
</target>
<target name="dist" depends="-init,clean-all,test"
description="builds all packages (src, bin) for distribution">
<mkdir dir="${dist.dir}"/>
<antcall target="-make-src"/>
<antcall target="-make-bin"/>
</target>
<target name="prepare"
description="copies resources (properties, icons, usrGuide) to ${build.dir}">
<mkdir dir="${build.dir}"/>
<antcall target="copy-resources"/>
</target>
<target name="copy-resources"
description="copies resources to ${build.dir}">
<copy todir="${build.dir}">
<fileset dir="${resource.dir}">
<exclude name="**/build-info.properties"/>
</fileset>
<mapper>
<globmapper from="*" to="resources/*"/>
</mapper>
</copy>
<copy file="${resource.dir}/properties/build-info.properties"
todir="${build.dir}/resources/properties/">
<filterset>
<filter token="version" value="${version}-${release}"/>
</filterset>
</copy>
</target>
<target name="copy-test-resources"
description="copies test resources to ${build.dir}">
<copy todir="${build.dir}">
<fileset dir="${test.resource.dir}"/>
</copy>
</target>
<target name="-fixEOL">
<fixcrlf srcdir="${doc.dir}"
tab="remove"
tablength="4"
eol="crlf"
includes="README BUGS CHANGELOG TODO legal/*">
</fixcrlf>
</target>
</project>