1 <project name="OpenRocket" basedir=".">
3 <property file="build.properties" />
5 <property name="src.dir" value="src"/> <!-- Source directory -->
6 <property name="src-test.dir" value="test"/> <!-- Test directory -->
7 <property name="build.dir" value="build"/> <!-- Build directory -->
8 <property name="build-test.dir" value="build/test"/><!-- Build directory -->
10 <!-- Distribution directory, from which stuff is jar'ed -->
11 <property name="dist.dir" value="${build.dir}/dist"/>
12 <property name="dist-test.dir" value="${build.dir}/dist-test"/>
14 <property name="classes.dir" value="${dist.dir}"/> <!-- Directory for classes -->
15 <property name="jar.dir" value="${build.dir}/jar"/> <!-- Directory for built jar's -->
16 <property name="lib.dir" value="lib"/> <!-- Library source directory -->
18 <property name="pkgname" value="${ant.project.name}-${build.version}"/>
20 <property name="jar.file" value="${jar.dir}/${ant.project.name}.jar"/>
21 <property name="dist.bin" value="${jar.dir}/${pkgname}.jar"/>
22 <property name="dist.src" value="${jar.dir}/${pkgname}-src.zip"/>
24 <!-- The main class of the application -->
25 <property name="main-class" value="net.sf.openrocket.startup.Startup"/>
26 <property name="main-dir" value="net/sf/openrocket/startup"/>
29 <!-- Classpath definition -->
31 <fileset dir="${lib.dir}" includes="**/*.jar"/>
38 <delete dir="${build.dir}"/>
44 <mkdir dir="${classes.dir}"/>
45 <echo>Compiling main classes</echo>
46 <javac srcdir="${src.dir}" destdir="${classes.dir}" excludes="${main-dir}/*" classpathref="classpath"/>
47 <echo>Compiling startup classes</echo>
48 <javac srcdir="${src.dir}/${main-dir}" destdir="${classes.dir}" source="1.4" classpathref="classpath"/>
53 <target name="jar" depends="build">
54 <copy todir="${dist.dir}/">
55 <fileset dir="." includes="LICENSE.TXT README.TXT ChangeLog ReleaseNotes build.properties" />
56 <fileset dir="." includes="datafiles/ pix/" />
58 <mkdir dir="${jar.dir}"/>
59 <jar destfile="${jar.file}" basedir="${dist.dir}">
61 <attribute name="Main-Class" value="${main-class}"/>
62 <attribute name="SplashScreen-Image" value="pix/splashscreen.png"/>
64 <zipfileset src="lib/miglayout15-swing.jar" />
65 <zipfileset src="lib/jcommon-1.0.16.jar" />
66 <zipfileset src="lib/jfreechart-1.0.13.jar" />
72 <target name="dist-src" depends="checktodo,clean,unittest">
74 Building source distribution
76 <mkdir dir="${build.dir}/${pkgname}"/>
77 <mkdir dir="${jar.dir}"/>
78 <copy todir="${build.dir}/${pkgname}">
79 <fileset dir="." includes="*">
82 <fileset dir="." includes="datafiles/ lib/ pix/ src/ test/"/>
84 <zip destfile="${dist.src}" basedir="${build.dir}" includes="${pkgname}/"/>
85 <delete dir="${build.dir}/${pkgname}"/>
89 <!-- DIST-SRC-TEST -->
90 <target name="dist-src-test" depends="dist-src">
92 Testing source distribution
94 <delete dir="${dist-test.dir}"/>
95 <mkdir dir="${dist-test.dir}"/>
96 <unzip dest="${dist-test.dir}" src="${dist.src}"/>
97 <ant dir="${dist-test.dir}/${pkgname}" antfile="build.xml" target="jar"/>
98 <ant dir="${dist-test.dir}/${pkgname}" antfile="build.xml" target="unittest"/>
99 <delete dir="${dist-test.dir}"/>
101 Source distribution test successful
107 <target name="dist-bin" depends="checktodo,clean,unittest,jar">
108 <move file="${jar.file}" tofile="${dist.bin}"/>
113 <target name="dist" depends="dist-bin,dist-src,dist-src-test">
114 <echo>Distribution ${build.version} (${build.source}) built into directory ${jar.dir}</echo>
119 <target name="checktodo">
120 <tempfile property="todo.file" prefix="checktodo-"/>
121 <echo>Checking project for critical TODOs.</echo>
122 <concat destfile="${todo.file}">
123 <fileset dir="${src.dir}">
124 <include name="**/*.java"/>
128 <regexp pattern="TODO:.*CRITICAL"/>
129 </linecontainsregexp>
132 <loadfile srcfile="${todo.file}" property="criticaltodos"/>
133 <delete file="${todo.file}"/>
134 <fail if="criticaltodos">CRITICAL TODOs exist in project:
135 ${criticaltodos}</fail>
136 <echo>No critical TODOs in project.</echo>
141 <target name="unittest" description="Execute unit tests" depends="build">
142 <echo>Building unit tests</echo>
143 <mkdir dir="${build-test.dir}"/>
144 <javac srcdir="${src-test.dir}" destdir="${build-test.dir}" classpathref="classpath" classpath="${classes.dir}:${ant.library.dir}/junit4.jar"/>
146 <echo>Running unit tests</echo>
147 <mkdir dir="tmp/rawtestoutput"/>
148 <junit printsummary="true" failureproperty="junit.failure">
149 <classpath path="${build-test.dir}"/>
150 <classpath path="${classes.dir}"/>
151 <classpath path="${ant.library.dir}/junit4.jar"/>
153 <batchtest todir="tmp/rawtestoutput">
154 <fileset dir="${src-test.dir}">
155 <include name="**/*Test*.java" />
156 <exclude name="Test.java" />
158 <formatter type="xml"/>
161 <junitreport todir="tmp">
162 <fileset dir="tmp/rawtestoutput"/>
163 <report todir="tmp/test-reports"/>
165 <fail if="junit.failure" message="Unit test(s) failed. See reports!"/>