<?xml version="1.0"?> <!-- Ant build file for Artemis --> <project default="package" basedir="."> <target name="init"> <tstamp /> <property name="name" value="artemis" /> <property name="version" value="live" /> <property name="build.compiler" value="modern" /> <property name="classpath" value="" /> <property name="src.dir" value="" /> <property name="docs.dir" value="docs" /> <property name="packages" value="uk.*" /> <property name="build.dir" value="./ant-build" /> <!-- Subdirectories for main source and classes --> <property name="build.src.main" value="${build.dir}/src/main" /> <property name="build.dest.main" value="${build.dir}/classes/main" /> <!-- Subdirectories for tests source and classes --> <property name="build.src.tests" value="${build.dir}/src/tests" /> <property name="build.dest.tests" value="${build.dir}/classes/tests" /> <!-- Subdirectories for docs --> <property name="build.src.docs" value="${build.dir}/src/docs" /> <property name="build.dest.docs" value="${build.dir}/docs" /> <property name="build.dest.javadocs" value="${build.dest.docs}/api" /> <!-- Subdirectory for libraries used during build --> <property name="build.src.main.lib" value="${build.src.main}/lib" /> <property name="dist.root" value="./dist" /> <property name="dist.dir" value="${dist.root}/${name}-${version}" /> <!-- Compile classpath --> <path id="compile.classpath"> <!-- Main classes from build --> <pathelement path="${build.src.main}" /> <!-- Dependency classes --> <fileset dir="${build.src.main}/lib"> <include name="**.jar" /> </fileset> <fileset dir="${build.src.main}/lib"> <include name="**/*.jar" /> <exclude name="j2ssh/j2ssh-artemis-plugin.jar"/> </fileset> </path> </target> <!-- Prepares the build directory --> <target name="prepare" depends="init"> <mkdir dir="${build.dir}" /> </target> <!-- Prepares the source code --> <target name="prepare-core" depends="init,prepare"> <!-- Creates directories --> <mkdir dir="${build.src.main}" /> <mkdir dir="${build.dest.main}" /> <mkdir dir="${build.src.docs}" /> <mkdir dir="${build.dest.docs}" /> <mkdir dir="${build.dest.javadocs}" /> <!-- Copies src files --> <copy todir="${build.src.main}"> <fileset dir="${src.dir}"> <exclude name="**/CVS/**" /> <exclude name="test/**" /> <exclude name="ant-build/**" /> </fileset> </copy> <!-- Copies docs files --> <copy todir="${build.src.docs}"> <fileset dir="${docs.dir}"> <exclude name="**/CVS/**" /> </fileset> </copy> <!-- Copies jars --> <copy todir="${build.dir}"> <fileset dir="."> <include name="*.jar" /> <exclude name="${docbook.tools.file}" /> </fileset> </copy> </target> <target name="prepare-src" depends="init,prepare-core" /> <!-- Compile IDL stub classes into the build directory (jar preparation) --> <target name="compile-idl" depends="init,prepare-core"> <exec executable="idlj" dir="${build.src.main}"> <arg line="-Icorba corba/types.idl" /> </exec> <exec executable="idlj" dir="${build.src.main}"> <arg line="-Icorba corba/nsdb.idl" /> </exec> <exec executable="idlj" dir="${build.src.main}"> <arg line="-Icorba corba/nsdb_write.idl" /> </exec> <exec executable="idlj" dir="${build.src.main}"> <arg line="-Icorba corba/seqdb.idl" /> </exec> </target> <!-- Compiles the source directory --> <target name="compile" depends="init,compile-idl,prepare-src"> <javac fork="true" memoryinitialsize="256m" memorymaximumsize="256m" srcdir="${build.src.main}" destdir="${build.dest.main}" excludes="nsdb/**,seqdb/**,type/**,lib/**,src/**,uk/ac/sanger/artemis/components/MacHandler.java,uk/ac/sanger/artemis/components/filetree/FileTree.java,uk/ac/sanger/artemis/components/filetree/SshFileTree.java,uk/ac/sanger/artemis/ExternalProgramUtils.java" deprecation="false" depend="no" debug="true"> <classpath refid="compile.classpath"/> </javac> </target> <!-- Creates the chado class package --> <target name="chado-access" depends="init,compile"> <jar jarfile="${build.dir}/chado-access.jar" basedir="${build.dest.main}" manifest="META-INF/MANIFEST.MF" includes="uk/ac/sanger/artemis/chado/**,uk/ac/sanger/artemis/util/ByteBuffer*" /> <jar jarfile="${build.dir}/chado-access.jar" update="yes" basedir="${build.src.main}" includes="artemis_sqlmap/**,uk/ac/sanger/artemis/chado/**,uk/ac/sanger/artemis/util/ByteBuffer*" /> </target> <!-- Creates the class package --> <target name="package" depends="init,compile"> <jar jarfile="${build.dir}/${name}.jar" basedir="${build.dest.main}" manifest="META-INF/MANIFEST.MF" includes="**" /> </target> <!-- Cleans everything --> <target name="clean" depends="init"> <delete dir="${build.dir}" /> <delete dir="${dist.root}" /> <delete file="${name}-${version}.tar.gz" /> <delete file="${name}-${version}.tar" /> <delete file="${name}-${version}.zip" /> </target> </project>