<!-- The main class of the application -->
<property name="main-class" value="net.sf.openrocket.startup.Startup"/>
- <property name="main-dir" value="net/sf/openrocket/startup"/>
- <!-- Classpath definition -->
+ <!-- Classpath definitions -->
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>
+ <path id="test-classpath">
+ <path refid="classpath"/>
+ <pathelement location="${basedir}"/>
+ <pathelement location="${build-test.dir}"/>
+ <pathelement location="${classes.dir}"/>
+ <pathelement location="${src-test.dir}"/>
+ <fileset dir="lib-test/" includes="*.jar"/>
+ </path>
+
<!-- CLEAN -->
<target name="clean">
<delete dir="${build.dir}"/>
+ <delete dir="tmp/"/>
</target>
<!-- BUILD -->
<target name="build">
<mkdir dir="${classes.dir}"/>
- <echo>Compiling main classes</echo>
- <javac srcdir="${src.dir}" destdir="${classes.dir}" excludes="${main-dir}/*" classpathref="classpath"/>
- <echo>Compiling startup classes</echo>
- <javac srcdir="${src.dir}/${main-dir}" destdir="${classes.dir}" source="1.4" classpathref="classpath"/>
+ <echo level="info">Compiling main classes</echo>
+ <javac debug="true" srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>
+ <echo level="info">Copying build.properties</echo>
+ <copy file="build.properties" todir="${dist.dir}"/>
</target>
<!-- JAR -->
<target name="jar" depends="build">
<copy todir="${dist.dir}/">
- <fileset dir="." includes="LICENSE.TXT README.TXT ChangeLog ReleaseNotes build.properties" />
- <fileset dir="." includes="datafiles/ pix/" />
+ <fileset dir="." includes="LICENSE.TXT README.TXT ChangeLog ReleaseNotes build.properties fileformat.txt" />
+ <fileset dir="." includes="datafiles/ pix/ l10n/" />
</copy>
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.file}" basedir="${dist.dir}">
<zipfileset src="lib/miglayout15-swing.jar" />
<zipfileset src="lib/jcommon-1.0.16.jar" />
<zipfileset src="lib/jfreechart-1.0.13.jar" />
+ <zipfileset src="lib/iText-5.0.2.jar" />
</jar>
</target>
<!-- DIST-SRC -->
- <target name="dist-src" depends="checktodo,clean,unittest">
+ <target name="dist-src">
<echo>
Building source distribution
</echo>
<fileset dir="." includes="*">
<type type="file"/>
</fileset>
- <fileset dir="." includes="datafiles/ lib/ pix/ src/ test/"/>
+ <fileset dir="." includes="datafiles/ lib/ lib-test/ pix/ src/ test/"/>
</copy>
<zip destfile="${dist.src}" basedir="${build.dir}" includes="${pkgname}/"/>
<delete dir="${build.dir}/${pkgname}"/>
<!-- DIST-BIN -->
- <target name="dist-bin" depends="checktodo,clean,unittest,jar">
+ <target name="dist-bin" depends="check,clean,unittest,jar">
<move file="${jar.file}" tofile="${dist.bin}"/>
</target>
</target>
+ <!-- CHECK -->
+ <target name="check" depends="checktodo,checkascii"/>
+
<!-- CHECK TODOs -->
+ <target name="todo" depends="checktodo"/>
<target name="checktodo">
<tempfile property="todo.file" prefix="checktodo-"/>
- <echo>Checking project for critical TODOs.</echo>
+ <echo>Checking project for FIXMEs.</echo>
<concat destfile="${todo.file}">
<fileset dir="${src.dir}">
<include name="**/*.java"/>
</fileset>
+ <fileset dir="${src-test.dir}">
+ <include name="**/*.java"/>
+ </fileset>
<filterchain>
<linecontainsregexp>
- <regexp pattern="TODO:.*CRITICAL"/>
+ <regexp pattern="(FIXME|TODO:.*CRITICAL)"/>
</linecontainsregexp>
</filterchain>
</concat>
</target>
+ <!-- CHECK TODOs -->
+ <target name="ascii" depends="checkascii"/>
+ <target name="checkascii">
+ <tempfile property="ascii.file" prefix="checkascii-"/>
+ <echo>Checking project for non-ASCII characters.</echo>
+ <concat destfile="${ascii.file}">
+ <fileset dir="${src.dir}">
+ <include name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src-test.dir}">
+ <include name="**/*.java"/>
+ </fileset>
+ <filterchain>
+ <linecontainsregexp>
+ <regexp pattern="\P{ASCII}"/>
+ </linecontainsregexp>
+ </filterchain>
+ </concat>
+ <loadfile srcfile="${ascii.file}" property="nonascii"/>
+ <delete file="${ascii.file}"/>
+ <fail if="nonascii">Non-ASCII characters exist in project:
+${nonascii}</fail>
+ <echo>No non-ASCII characters in project.</echo>
+ </target>
+
+
<!-- Unit tests -->
<target name="unittest" description="Execute unit tests" depends="build">
<echo>Building unit tests</echo>
<mkdir dir="${build-test.dir}"/>
- <javac srcdir="${src-test.dir}" destdir="${build-test.dir}" classpathref="classpath" classpath="${classes.dir}:${ant.library.dir}/junit4.jar"/>
+ <javac debug="true" srcdir="${src-test.dir}" destdir="${build-test.dir}" classpathref="test-classpath"/>
<echo>Running unit tests</echo>
<mkdir dir="tmp/rawtestoutput"/>
- <junit printsummary="true" failureproperty="junit.failure">
- <classpath path="${build-test.dir}"/>
- <classpath path="${classes.dir}"/>
- <classpath path="${ant.library.dir}/junit4.jar"/>
-
+ <junit fork="yes" forkmode="once" printsummary="false" failureproperty="junit.failure">
+ <classpath>
+ <path refid="test-classpath"/>
+ <path location="${basedir}"/>
+ </classpath>
<batchtest todir="tmp/rawtestoutput">
- <fileset dir="${src-test.dir}">
- <include name="**/*Test*.java" />
- <exclude name="Test.java" />
+ <fileset dir="${build-test.dir}">
+ <include name="**/Test*.class" />
+ <include name="**/*Test.class" />
+ <exclude name="**/*$*.class" />
+ <exclude name="Test.class" />
</fileset>
<formatter type="xml"/>
</batchtest>
<fileset dir="tmp/rawtestoutput"/>
<report todir="tmp/test-reports"/>
</junitreport>
- <fail if="junit.failure" message="Unit test(s) failed. See reports!"/>
+ <fail if="junit.failure" message="Unit test(s) failed. See report in ${basedir}/tmp/test-reports/index.html"/>
+ <echo>
+ Unit tests passed successfully.
+ </echo>
</target>
</project>
\ No newline at end of file