source: core/java/build.xml @ c5f04ee

Last change on this file since c5f04ee was c5f04ee, checked in by zzz <zzz@…>, 9 years ago
  • Don't do 'mtn list changed' if not in a workspace or not needed
  • Property mode set to 100644
File size: 6.0 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<project basedir="." default="all" name="i2p_sdk">
3    <target name="all" depends="clean, build" />
4    <target name="build" depends="builddep, jar" />
5    <target name="builddep">
6        <!-- noop, since the core doesnt depend on anything -->
7    </target>
8    <condition property="depend.available">
9        <typefound name="depend" />
10    </condition>
11    <target name="depend" if="depend.available">
12        <depend
13            cache="../../build"
14            srcdir="./src" 
15            destdir="./build/obj" >
16        </depend>
17    </target>
18    <!-- only used if not set by a higher build.xml -->
19    <property name="javac.compilerargs" value="" />
20    <property name="javac.classpath" value="" />
21    <target name="compile" depends="depend">
22        <mkdir dir="./build" />
23        <mkdir dir="./build/obj" />
24        <javac srcdir="./src" debug="true" source="1.5" target="1.5" deprecation="on"
25               includeAntRuntime="false"
26               destdir="./build/obj" classpath="${javac.classpath}" >
27            <compilerarg line="${javac.compilerargs}" />
28        </javac>
29    </target>
30
31    <target name="compileTest">
32        <mkdir dir="./build" />
33        <mkdir dir="./build/obj" />
34        <!-- junit classes are in ant runtime -->
35        <javac srcdir="./src:./test" debug="true" source="1.5" target="1.5" deprecation="on"
36               includeAntRuntime="true"
37               destdir="./build/obj" >
38            <compilerarg line="${javac.compilerargs}" />
39        </javac>
40    </target>
41
42    <target name="listChangedFiles" if="mtn.available" >
43        <exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
44            <arg value="list" />
45            <arg value="changed" />
46            <arg value="." />
47        </exec>
48        <!-- \n in an attribute value generates an invalid manifest -->
49        <exec executable="tr" inputstring="${workspace.changes}" outputproperty="workspace.changes.tr" errorproperty="mtn.error2" failifexecutionfails="false" >
50            <arg value="-s" />
51            <arg value="[:space:]" />
52            <arg value="," />
53        </exec>
54    </target>
55
56    <target name="jar" depends="compile, jarUpToDate, listChangedFiles" unless="jar.uptodate" >
57        <!-- set if unset -->
58        <property name="workspace.changes.tr" value="" />
59        <jar destfile="./build/i2p.jar" basedir="./build/obj" includes="**/*.class" >
60            <manifest>
61                <attribute name="Build-Date" value="${build.timestamp}" />
62                <attribute name="Base-Revision" value="${workspace.version}" />
63                <attribute name="Workspace-Changes" value="${workspace.changes.tr}" />
64            </manifest>
65        </jar>
66    </target>
67
68    <target name="jarUpToDate" >
69        <uptodate property="jar.uptodate" targetfile="build/i2p.jar" >
70            <srcfiles dir= "build/obj" includes="**/*.class" />
71        </uptodate>
72    </target>
73
74    <target name="jarTest" depends="compileTest">
75        <jar destfile="./build/i2ptest.jar" basedir="./build/obj" includes="**/*.class" />
76    </target>
77    <target name="javadoc">
78        <mkdir dir="./build" />
79        <mkdir dir="./build/javadoc" />
80        <javadoc sourcepath="./src:./test" destdir="./build/javadoc" packagenames="*" use="true" splitindex="true" windowtitle="I2P SDK" />
81    </target>
82    <target name="prepareTest" depends="compileTest" if="with.cobertura">
83        <taskdef classpath="${with.cobertura}" resource="tasks.properties" onerror="report" />
84        <mkdir dir="./build/obj_test" />
85        <cobertura-instrument todir="./build/obj_test">
86            <fileset dir="./build/obj">
87                <include name="**/*.class"/>
88                <exclude name="**/*Test.class" />
89            </fileset>
90        </cobertura-instrument>
91    </target>
92    <target name="test" depends="clean, compileTest, prepareTest">
93        <delete>
94            <fileset dir="../../reports/core/junit">
95                <include name="TEST-*.xml"/>
96            </fileset>
97        </delete>
98        <mkdir dir="../../reports/" />
99        <mkdir dir="../../reports/core/" />
100        <mkdir dir="../../reports/core/junit/" />
101        <junit printsummary="on" fork="yes" maxmemory="384m">
102            <sysproperty key="net.sourceforge.cobertura.datafile" file="./cobertura.ser" />
103            <classpath>
104                <pathelement path="${classpath}" />
105                <pathelement location="./build/obj_test" />
106                <pathelement location="./build/obj" />
107                <pathelement location="../../build/jbigi.jar" />
108                <pathelement location="${with.cobertura}" />
109            </classpath>
110            <batchtest todir="../../reports/core/junit/">
111                <fileset dir="./test/">
112                    <include name="**/*Test.java" />
113                    <exclude name="**/ElGamalAESEngineTest.java" />
114                    <exclude name="**/StructureTest.java" />
115                </fileset>
116            </batchtest>
117            <formatter type="xml"/>
118        </junit>
119    </target>
120    <target name="cobertura" depends="test" if="with.cobertura">
121        <mkdir dir="../../reports/core/cobertura" />
122        <cobertura-report format="xml" srcdir="./src" destdir="../../reports/core/cobertura" />
123        <delete file="./cobertura.ser" />
124    </target>
125    <target name="junit.report">
126        <junitreport todir="../../reports/core/junit">
127            <fileset dir="../../reports/core/junit">
128                <include name="TEST-*.xml"/>
129            </fileset>
130            <report format="frames" todir="../../reports/core/html/junit"/>
131        </junitreport>
132    </target>
133    <target name="test.report" depends="junit.report"/>
134    <target name="fulltest" depends="test, junit.report" />
135    <target name="clean">
136        <delete dir="./build" />
137    </target>
138    <target name="cleandep" depends="clean">
139        <!-- noop, since the core doesn't depend on anything -->
140    </target>
141    <target name="distclean" depends="clean">
142        <!-- noop, since the core doesn't depend on anything -->
143    </target>
144</project>
Note: See TracBrowser for help on using the repository browser.