Version 0.9.1
[debian/openrocket] / build.xml
1 <project name="OpenRocket" basedir=".">
2
3         <property file="build.properties" />
4         
5         <property name="src.dir"     value="src"/>                      <!-- Source directory -->
6         <property name="build.dir"   value="build"/>            <!-- Build directory -->
7         
8         <!-- Distribution directory, from which stuff is jar'ed -->
9         <property name="dist.dir"    value="${build.dir}/dist"/> 
10         <property name="test.dir"    value="${build.dir}/test"/>
11         
12         <property name="classes.dir" value="${dist.dir}"/>      <!-- Directory for classes -->
13         <property name="jar.dir"     value="${build.dir}/jar"/> <!-- Directory for built jar's -->
14         <property name="lib.dir"     value="lib"/>                              <!-- Library source directory -->
15
16         <property name="pkgname"     value="${ant.project.name}-${build.version}"/>
17         
18         <property name="jar.file"    value="${jar.dir}/${ant.project.name}.jar"/>
19         <property name="dist.bin"    value="${jar.dir}/${pkgname}.jar"/>
20         <property name="dist.src"    value="${jar.dir}/${pkgname}-src.zip"/>
21         
22         <!-- The main class of the application -->
23         <property name="main-class"  value="net.sf.openrocket.startup.Startup"/>
24         <property name="main-dir" value="net/sf/openrocket/startup"/>
25
26         
27         <!-- Classpath definition -->
28         <path id="classpath">
29                 <fileset dir="${lib.dir}" includes="**/*.jar"/>
30         </path>
31         
32         
33         
34         
35         <!-- CLEAN -->
36         <target name="clean">
37                 <delete dir="${build.dir}"/>
38         </target>
39                 
40         
41         <!-- BUILD -->
42         <target name="build">
43                 <mkdir dir="${classes.dir}"/>
44                 <echo>Compiling main classes</echo>
45                 <javac srcdir="${src.dir}" destdir="${classes.dir}" excludes="${main-dir}/*" classpathref="classpath"/>
46                 <echo>Compiling startup classes</echo>
47                 <javac srcdir="${src.dir}/${main-dir}" destdir="${classes.dir}" source="1.4" classpathref="classpath"/>
48         </target>
49         
50         
51         <!-- JAR -->
52         <target name="jar" depends="build">
53                 <copy todir="${dist.dir}/">
54                         <fileset dir="." includes="LICENSE.TXT README.TXT ChangeLog ReleaseNotes build.properties" />
55                         <fileset dir="." includes="datafiles/ pix/" />
56                 </copy>
57                 <mkdir dir="${jar.dir}"/>
58                 <jar destfile="${jar.file}" basedir="${dist.dir}">
59                         <manifest>
60                                 <attribute name="Main-Class" value="${main-class}"/>
61                                 <attribute name="SplashScreen-Image" value="pix/splashscreen.png"/>
62                         </manifest>
63                         <zipfileset src="lib/miglayout15-swing.jar" />
64                         <zipfileset src="lib/jcommon-1.0.16.jar" />
65                         <zipfileset src="lib/jfreechart-1.0.13.jar" />
66                 </jar>
67         </target>
68         
69         
70         <!-- DIST-SRC -->
71         <target name="dist-src" depends="clean">
72                 <echo>                  
73                 Building source distribution
74                 </echo>
75                 <mkdir dir="${build.dir}/${pkgname}"/>
76                 <mkdir dir="${jar.dir}"/>
77                 <copy todir="${build.dir}/${pkgname}">
78                         <fileset dir="." includes="*">
79                                 <type type="file"/>
80                         </fileset>
81                         <fileset dir="." includes="datafiles/ lib/ pix/ src/"/>
82                 </copy>
83                 <zip destfile="${dist.src}" basedir="${build.dir}" includes="${pkgname}/"/>
84                 <delete dir="${build.dir}/${pkgname}"/>
85         </target>
86         
87         
88         <!-- DIST-SRC-TEST -->
89         <target name="dist-src-test" depends="dist-src">
90                 <echo>
91                 Testing source distribution
92                 </echo>
93                 <delete dir="${test.dir}"/>
94                 <mkdir dir="${test.dir}"/>
95                 <unzip dest="${test.dir}" src="${dist.src}"/>
96                 <ant dir="${test.dir}/${pkgname}" antfile="build.xml" target="jar"/>
97                 <delete dir="${test.dir}"/>
98                 <echo>
99                 Test successful
100                 </echo>
101         </target>       
102         
103         
104         <!-- DIST-BIN -->
105         <target name="dist-bin" depends="clean,jar">
106                 <move file="${jar.file}" tofile="${dist.bin}"/>
107         </target>
108
109         
110         <!-- DIST -->
111         <target name="dist" depends="dist-bin,dist-src,dist-src-test">
112                 <echo>Distribution ${build.version} (${build.source}) built into directory ${jar.dir}</echo>
113         </target>
114         
115 </project>