root/trunk/build-base.xml

Revision 894, 6.3 kB (checked in by alban, 2 years ago)

exclude tests with native dependencies from base tests

Line 
1 <project name="freecast" default="test" basedir=".">
2
3         <property file="build-user.properties" />
4         <property file="build.properties" />
5
6   <target name="prepare.version">
7         <fail unless="project.version" message="no property project.version"/>
8   </target>
9
10   <target name="prepare.libraries">
11         <path id="path.build">
12                 <fileset dir="lib/core"/>
13         </path>
14         <path id="path.runtime">
15                 <fileset dir="lib/runtime"/>
16                 <path refid="path.build"/>
17         </path>
18         <path id="path.test">
19                 <fileset dir="lib/test"/>
20                 <path refid="path.runtime"/>
21         </path>
22   </target>
23  
24         <target name="clean">
25                 <delete dir="build" />
26                 <delete dir="dist" />
27         </target>
28
29         <target name="build.core" depends="prepare.libraries, build.core.classes, build.core.resources" />
30
31         <target name="build.core.classes">
32                 <property name="build.core.classes.dir" value="build/core/classes"/>
33                 <mkdir dir="${build.core.classes.dir}" />
34                 <javac target="1.4" source="1.4" srcdir="source" destdir="${build.core.classes.dir}" debug="true">
35                         <classpath refid="path.build" />
36                         <exclude name="**/test/*.java" />
37                 </javac>
38         </target>
39
40         <target name="build.core.resources" depends="prepare.version">
41                 <copy todir="${build.core.classes.dir}">
42                         <fileset dir="source">
43                                 <include name="**/resources/*" />
44                                 <exclude name="**/*.xcf" />
45                                 <exclude name="**/test/**" />
46                                 <exclude name="org/kolaka/freecast/node/swing/resources/freecast-splash.jpg" />
47                         </fileset>
48                 </copy>
49
50                 <mkdir dir="build/core/version" />
51                 <mkdir dir="${build.core.classes.dir}/org/kolaka/freecast/resources" />
52
53                 <echo file="build/core/version/version.properties" message="name=${project.version}" />
54                 <copy todir="${build.core.classes.dir}/org/kolaka/freecast/resources">
55                         <fileset dir="build/core/version">
56                                 <different targetdir="${build.core.classes.dir}/org/kolaka/freecast/resources" />
57                         </fileset>
58                 </copy>
59
60                 <copy todir="${build.core.classes.dir}/org/kolaka/freecast/manager/http/resources/data" flatten="true">
61                         <fileset dir="source/org/kolaka/freecast/www">
62                                 <include name="images/header/freecast.png" />
63                                 <include name="css/start.css" />
64                                 <include name="css/screen.css" />
65                         </fileset>
66                 </copy>
67         </target>
68
69         <target name="build.etc">
70                 <mkdir dir="build/etc/console-only" />
71                 <style in="source/org/kolaka/freecast/log4j.xml" out="build/etc/console-only/log4j.xml" style="source/org/kolaka/freecast/log4j.xsl">
72                         <param name="file" expression="false" />
73                 </style>
74                 <mkdir dir="build/etc/complete" />
75                 <style in="source/org/kolaka/freecast/log4j.xml" out="build/etc/complete/log4j.xml" style="source/org/kolaka/freecast/log4j.xsl">
76                         <param name="file" expression="true" />
77                 </style>
78         </target>
79
80         <target name="build.test" depends="build.core, build.etc">
81                 <property name="build.test.classes.dir" value="build/test/classes" />
82                 <mkdir dir="${build.test.classes.dir}" />
83                 <javac srcdir="source" destdir="${build.test.classes.dir}" debug="true">
84                         <classpath refid="path.test" />
85                         <include name="**/test/*.java" />
86                 </javac>
87                 <copy file="source/org/kolaka/freecast/test/log4j.xml" tofile="${build.test.classes.dir}/log4j.xml" />
88                 <copy todir="${build.test.classes.dir}">
89                         <fileset dir="source">
90                                 <include name="**/test/resources/*" />
91                                 <include name="**/test/log4j.xml" />
92                         </fileset>
93                 </copy>
94         </target>
95
96         <target name="build" depends="build.core" />
97
98         <target name="test" depends="build.test" description="Run the unit tests">
99                 <property name="build.test.results.dir" value="build/test/results" />
100                 <mkdir dir="${build.test.results.dir}" />
101                 <property name="test.haltonfailure" value="true" />
102                 <junit printsummary="yes" haltonfailure="${test.haltonfailure}" includeantruntime="yes" fork="yes">
103                         <formatter type="plain" />
104                         <formatter type="xml" />
105                         <batchtest todir="${build.test.results.dir}">
106                                 <fileset dir="source">
107                                         <include name="**/test/*Test.java" />
108                                         <exclude name="**/test/*NativeTest.java" />
109                                         <exclude name="**/test/*BaseTest.java" />
110                                 </fileset>
111                         </batchtest>
112                         <classpath>
113                                 <pathelement path="build/core/classes" />
114                                 <pathelement path="build/test/classes" />
115                                 <path refid="path.test" />
116                         </classpath>
117                         <sysproperty key="java.library.path" path="${track.tritonus.dir}" />
118                 </junit>
119         </target>
120
121         <target name="dist" depends="build, dist.jar, dist.bin, dist.etc, dist.lib" description="Create the binaries distribution" />
122
123         <target name="dist.jar" depends="build.core">
124                 <mkdir dir="dist/lib" />
125                 <jar jarfile="dist/lib/freecast.jar">
126                         <fileset dir="${build.core.classes.dir}" />
127                 </jar>
128         </target>
129
130         <target name="dist.bin">
131                 <macrodef name="binscript">
132                         <attribute name="name"/>
133                         <attribute name="mainclass"/>
134                         <sequential>
135                                 <filterset id="binscript.@{application}">
136                                         <filter token="app.name" value="@{name}" />
137                                         <filter token="app.mainclass" value="@{mainclass}" />
138                                 </filterset>
139                                 <copy tofile="dist/bin/@{name}" file="source/org/kolaka/freecast/freecast-template.sh">
140                                         <filterset refid="binscript.@{application}"/>
141                                 </copy>
142                                 <copy tofile="dist/bin/@{name}.bat" file="source/org/kolaka/freecast/freecast-template.bat">
143                                         <filterset refid="binscript.@{application}"/>
144                                 </copy>
145                         </sequential>
146                 </macrodef>
147                
148                 <binscript name="freecast" mainclass="org.kolaka.freecast.node.cli.Main"/>
149                 <binscript name="freecast-tracker" mainclass="org.kolaka.freecast.tracker.Main"/>
150                 <binscript name="freecast-swing" mainclass="org.kolaka.freecast.node.swing.Main"/>
151                 <binscript name="freecast-keygenerator" mainclass="org.kolaka.freecast.packet.signer.Main"/>
152                 <binscript name="freecast-manager" mainclass="org.kolaka.freecast.manager.gui.Main"/>
153                 <binscript name="freecast-setup" mainclass="org.kolaka.freecast.setup.Main"/>
154                 <binscript name="freecast-testencoder" mainclass="org.kolaka.freecast.ogg.tools.TestEncoder"/>
155
156                 <copy todir="dist/bin" file="source/org/kolaka/freecast/classpath.bat" />
157
158                 <chmod perm="+x">
159                         <fileset dir="dist/bin">
160                                 <include name="freecast*" />
161                                 <exclude name="*.bat" />
162                         </fileset>
163                 </chmod>
164         </target>
165
166         <target name="dist.etc" depends="build.etc">
167           <mkdir dir="dist/etc"/>
168           <!-- TODO restore tidy processing -->
169           <copy todir="dist/etc">
170                   <fileset dir="build/etc/complete" />
171           </copy>
172         </target>
173
174         <target name="dist.lib">
175                 <copy todir="dist/lib">
176                         <fileset dir="lib/core"/>
177                         <fileset dir="lib/runtime">
178                                  <exclude name="jdic-stub*"/>
179                                  <exclude name="jdic-native*"/>
180                         </fileset>
181                 </copy>
182         </target>
183        
184 </project>
Note: See TracBrowser for help on using the browser.