added GPLv3 as per LGPL requirements.
[vamsas.git] / build.xml
1 <?xml version="1.0"?>
2 <!--
3   This file is part of the Vamsas Client version 0.1. 
4   Copyright 2009 by Jim Procter, Iain Milne, Pierre Marguerite, 
5    Andrew Waterhouse and Dominik Lindner.
6   
7   Earlier versions have also been incorporated into Jalview version 2.4 
8   since 2008, and TOPALi version 2 since 2007.
9   
10   The Vamsas Client is free software: you can redistribute it and/or modify
11   it under the terms of the GNU Lesser General Public License as published by
12   the Free Software Foundation, either version 3 of the License, or
13   (at your option) any later version.
14    
15   The Vamsas Client is distributed in the hope that it will be useful,
16   but WITHOUT ANY WARRANTY; without even the implied warranty of
17   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18   GNU Lesser General Public License for more details.
19   
20   You should have received a copy of the GNU Lesser General Public License
21   along with the Vamsas Client.  If not, see <http://www.gnu.org/licenses/>.
22  -->
23 <project name="vamsas-client" default="build" basedir=".">
24
25         <target name="init">
26                 <property name="libDir" value="lib"/>
27                 <property name="toolsDir" value="tools"/>
28                 <property name="resourceDir" value="resources"/>
29                 <property name="sourceDir" value="src" />
30                 <property name="outputDir" value="classes" />
31                 <property name="packageDir" value="packages" />
32                 <property name="vamsasClient.jar" value="vamsas-client.jar" />
33                 <property name="vamsasClientDoc.jar" value="vamsas-client-docs.jar" />
34                 <property name="vamsasClientSource.jar" value="vamsas-client-src-doc.jar" />
35                 <property name="vamsasSchemaDocs.jar" value="vamsas-schema-and-doc.jar" />
36                 <property name="vamsas.schema" value="schemas/vamsas.xsd" />
37                 <property name="vamsas.doc.schema" value="schemas/vamsasDocument.xsd" />
38                 <property name="vamsas.schema.package" value="uk.ac.vamsas.objects.core" />
39                 <property name="vamsas.schema.package.src" value="uk/ac/vamsas/objects/core" />
40                 <property name="vamsas.schema.sourcegen.properties" value="schemas/castorbuilder.properties"/>
41                 <path id="castor.classpath">
42                         <fileset dir="tools">
43                                 <include name="*.jar"/>
44                                 <include name="**/*.jar"/>
45                         </fileset>
46                         <fileset dir="lib">
47                                 <include name="*.jar"/>
48                                 <include name="**/*.jar"/>
49                         </fileset>
50                 </path>
51                         
52                 <!--
53                 Build classpath
54                 -->
55                 <path id="build.classpath">
56                         <fileset dir="${toolsDir}">
57                                 <include name="*.jar"/>
58                                 <include name="**/*.jar"/>
59                         </fileset>
60
61                         <fileset dir="${libDir}">
62                                 <include name="*.jar"/>
63                                 <include name="**/*.jar"/>
64                         </fileset>
65                         <!--            path refid="axis.classpath"  -->
66                 </path>
67         </target>
68         <target name="cleancoresource" depends="init" description="Clean automatically generated packages">
69                 <delete>
70                         <fileset dir="${sourceDir}/${vamsas.schema.package.src}">
71                                 <include name="*.java"/>
72                                 <include name="descriptors/*.java"/>
73                         </fileset>
74                 </delete>
75         </target>
76         <target name="makecoresource" depends="init, cleancoresource" description="Generate Java source files from XSD.">
77         <taskdef name="castor-srcgen"
78                   classname="org.castor.anttask.CastorCodeGenTask"
79               classpathref="castor.classpath" />
80         <!-- Should apply this to every schema file in ${vamsas.schemas} directory -->
81                 <castor-srcgen file="${vamsas.schema}"
82               todir="${sourceDir}"
83               package="${vamsas.schema.package}"
84               warnings="true" 
85                   nodesc="false"
86                 properties="${vamsas.schema.sourcegen.properties}"
87         />      
88                 <castor-srcgen file="${vamsas.doc.schema}"
89                               todir="${sourceDir}"
90                               package="${vamsas.schema.package}"
91                               warnings="true" 
92                                   nodesc="false"
93                                 properties="${vamsas.schema.sourcegen.properties}"
94                         />      
95         </target>
96         <target name="prepare" depends="init">
97                 <mkdir dir="${packageDir}"/>
98                 <mkdir dir="${outputDir}"/>
99                 <copy todir="${outputDir}">
100                         <fileset dir="${resourceDir}" />
101                         <fileset dir="${basedir}">
102                                 <include name="LICENS*"/>
103                                 <include name="COPYING*"/>
104                                 <include name="CONTRIB"/>
105                                 <include name="README"/>
106                         </fileset>
107                 </copy>
108         </target>
109         <target name="clean" depends="init">
110                 <delete>
111                         <fileset dir="${outputDir}">
112                                 <include name="*"/>
113                                 <include name="*.*"/>
114                                 <include name="**/*"/>
115                                 <include name="**/*.*"/>
116                         </fileset>
117                 </delete>
118                 <delete dir="${axisbuild}"/>
119                 <!--    <ant dir="test" antfile="build.xml" target="clean"
120 inheritRefs="true"/> -->
121         </target>
122         <target name="realclean" depends="init, clean">
123                 <delete dir="${packageDir}"/>
124         </target>
125         <target name="distclean" depends="init, realclean">
126                 <echo message="REMOVING ALL BACKUP/AUTOSAVES!"/>
127                 <delete>
128                         <fileset dir=".">
129                                 <include name="#*#"/>
130                                 <include name="#*.*#"/>
131                                 <include name="**/#*#"/>
132                                 <include name="**/#*.*#"/>
133                                 <include name="*~"/>
134                                 <include name="*.*~"/>
135                                 <include name="**/*~"/>
136                                 <include name="**/*.*~"/>
137                         </fileset>
138                 </delete>
139         </target>
140
141         <target name="build" depends="init, prepare">
142                 <!-- not efficient yet. : use excludes="*/localtest/*.java" if local tests are not building -->
143                 <javac classpathref="build.classpath" debug="on" srcdir="${sourceDir}" destdir="${outputDir}" deprecation="on" source="1.4" target="1.4">
144         <exclude name="uk/ac/ebi/msd/vamsas/**"/>
145                 </javac>
146         </target>
147         <target name="jar" depends="build, javadoc">
148                 <jar destfile="${packageDir}/${vamsasClient.jar}">
149                 <fileset dir="${outputDir}">
150                   <exclude name="cache*/**"/>
151                   <include name="**/*" />
152                           <exclude name="*.jar.*" />
153                   <exclude name="**/*.jar" />
154                   <exclude name="**/*.jar.*" />
155                           <exclude name="*.java"/>
156                           <exclude name="**/*.java"/>
157                           <exclude name="uk/*.class"/>
158                           <exclude name="log4j.properties"/>
159                         <exclude name="commons-logging.properties"/>
160                 </fileset>
161                 </jar>
162                 <jar destfile="${packageDir}/${vamsasClientDoc.jar}">
163                         <fileset dir="docs/api">
164                                 <include name="**/*"/>
165                         </fileset>
166                         <fileset dir="${basedir}">
167                                 <include name="README"/>
168                                 <include name="CONTRIB"/>
169                                 <include name="LICEN*"/>
170                                 <include name="COPYING*"/>
171                         </fileset>
172                 </jar>
173                 <jar destfile="${packageDir}/${vamsasSchemaDocs.jar}">
174                         <fileset dir="${basedir}/schemas">
175                                 <include name="*.xsd"/>
176                         </fileset>
177                         <fileset dir="${basedir}/docs/schema">
178                                 <include name="**/*"/>
179                         </fileset>
180                         <fileset dir="${basedir}">
181                                 <include name="COPYING*"/>
182                         </fileset>
183                 </jar>          
184                 <jar destfile="${packageDir}/${vamsasClientSource.jar}">
185                         <fileset dir="${basedir}">
186                                 <include name="src/**/*.java"/>
187                                 <include name="src/**/*.cdr"/>
188                                 <exclude name="*~"/>
189                                 <exclude name="**/*.java~"/>
190                                 <include name="resources/**"/>
191                                 <include name="utils/**"/>
192                                 <include name="tools/**"/>
193                                 <include name="schemas/**"/>
194                                 <include name="test"/>
195                                 <include name="docs/**"/>
196                                 <include name="tools/**"/>
197                                 <include name="lib/**"/>
198                                 <include name="README"/>
199                                 <include name="CONTRIB"/>
200                                 <include name="LICEN*"/>
201                                 <include name="COPYING*"/>
202                                 <include name="*.eclipse*"/>
203                                 <include name="*.launch"/>
204                                 <include name="build.xml"/>
205                         </fileset>
206                         </jar>
207         </target>
208         
209         <target name="javadoc" depends="init">
210         <javadoc destdir="docs/api"  classpathref="build.classpath" author="true" version="true" use="true">      
211       <fileset dir="${sourceDir}" defaultexcludes="yes">
212         <exclude name="**/.castor.cdr"/>
213         <!-- this was for the old ebi packages.
214         <exclude name="uk/**"/>
215         <exclude name="uk/*.java"/> -->
216             </fileset>
217     </javadoc>
218   </target>
219         
220 </project>
221
222