1 <project name="jME" default="compile" basedir=".">
3 Ant Build File for the jME API.
6 <import file="build-import.xml"/>
8 <property name="class" location="${build}" />
9 <property name="jars" location="${release}" />
10 <property name="webstart" location="${seg}/jnlp" />
12 <property file="build.properties"/>
13 <!-- defaults for build.properties:-->
14 <property name="keyStore" value="jmeKeyStore"/>
15 <property name="storepass" value="..."/>
16 <property name="ftpuser" value="..."/>
17 <property name="ftppassword" value="..."/>
18 <!-- end of defaults -->
21 <fileset dir="${libs}">
22 <include name="*.jar"/>
24 <pathelement path="${class}"/>
28 <echo message="${keyStore}"/>
29 <mkdir dir="${src}" />
30 <mkdir dir="${class}" />
31 <mkdir dir="${data}" />
32 <mkdir dir="${doc}" />
35 <!-- Compiles all the jME classes, including com.jmex.* -->
36 <target name="compile" depends="init" description="generate jme classes">
37 <mkdir dir="${class}" />
38 <mkdir dir="${class}/com" />
39 <copy todir="${class}/com">
40 <fileset dir="${src}/com">
41 <exclude name="**/*.java" />
44 <javac source="1.5" target="1.5"
47 classpathref="classpath"
52 <target name="run-testchooser" depends="compile-test" description="Runs the TestChooser">
53 <java classname="jmetest.TestChooser"
55 classpathref="classpath">
56 <jvmarg value="-Djava.library.path=${libs}"/>
60 <!-- Jar files for different parts of the jME API -->
62 <target name="dist-core" depends="compile" description="generate jme jar file">
63 <jar jarfile="${jars}/jme.jar" basedir="${class}" update="no" compress="false" includes="**/com/jme/**/*.class, **/com/jme/**/*.tga, **/com/jme/**/*.png, **/com/jme/**/*.glf" />
65 <target name="dist-awt" depends="compile" description="generate jme jar file (awt)">
66 <jar jarfile="${jars}/jme-awt.jar" basedir="${class}" update="no" compress="false" includes="**/com/jmex/awt/**/*.class" />
68 <target name="dist-effects" depends="compile" description="generate jme jar file (effects)">
69 <jar jarfile="${jars}/jme-effects.jar" basedir="${class}" update="no" compress="false" includes="**/com/jmex/effects/**/*.class" />
71 <target name="dist-terrain" depends="compile" description="generate jme jar file (terrain)">
72 <jar jarfile="${jars}/jme-terrain.jar" basedir="${class}" update="no" compress="false" includes="**/com/jmex/terrain/**/*.class" />
74 <target name="dist-model" depends="compile" description="generate jme jar file (model)">
75 <jar jarfile="${jars}/jme-model.jar" basedir="${class}" update="no" compress="false" includes="**/com/jmex/model/**/*.class" />
77 <target name="dist-sound" depends="compile" description="generate jme jar file (sound)">
78 <jar jarfile="${jars}/jme-sound.jar" basedir="${class}" update="no" compress="false" includes="**/com/jmex/sound/**/*.class" />
81 <!-- Creates all the jME jars -->
82 <target name="dist-all" depends="dist-core, dist-terrain, dist-awt, dist-effects, dist-model, dist-sound" description="Generate all jar files" />
84 <target name="webdist-all" depends="dist-all" description="sign JARs for JNLP distribution">
85 <signjar jar="${jars}/jme.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
86 <signjar jar="${jars}/jme-awt.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
87 <signjar jar="${jars}/jme-effects.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
88 <signjar jar="${jars}/jme-terrain.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
89 <signjar jar="${jars}/jme-model.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
90 <signjar jar="${jars}/jme-sound.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
93 <!-- Generats javadoc -->
94 <target name="doc" depends="compile" description="generate the javadoc documentation">
95 <javadoc destdir="${doc}" useExternalFile="yes" author="true" version="true" use="true" package="yes" windowtitle="jME API">
96 <fileset dir="${src}/com">
97 <include name="**/*.java" />
102 <!-- Removes all compiled files and documentation, but leaves any created jars -->
103 <target name="clean" description="clean up">
104 <delete dir="${class}" />
105 <delete dir="${doc}" />
107 <fileset dir="${src}" includes="**/*.class" />
108 <fileset dir="${release}" includes="jme*.jar"/>
109 <fileset dir="${webstart}" includes="*.jar"/>
113 <target name="rebuild" depends="clean" description="build from clean">
117 <!-- *** jmetest-related build targets -->
119 <target name="compile-test" depends="compile" description="generate jme test classes">
120 <javac source="1.5" target="1.5"
121 srcdir="${src}/jmetest"
123 classpathref="classpath"
125 <!-- copy the resources into the build directory -->
126 <copy todir="${class}/jmetest/data">
127 <fileset dir="${src}/jmetest/data"/>
131 <target name="dist-test" depends="compile-test" description="generate jme test class and data jars" >
132 <!-- Jar the demo classes -->
134 <pathconvert property="jarclasspathlibs" pathsep=" " dirsep="/">
136 <fileset dir="${libs}">
137 <include name="*.jar"/>
140 <mapper type="regexp" from=".*(lib.*)" to="\1"/>
142 <pathconvert property="jarclasspathrelease" pathsep=" " dirsep="/">
144 <fileset dir="${jars}">
145 <include name="*.jar"/>
146 <exclude name="jmetest.jar"/>
149 <mapper type="regexp" from=".*target.(.*)" to="\1"/>
151 <echo>${jarclasspathlibs} ${jarclasspathrelease}</echo>
153 <jar jarfile="${jars}/jmetest.jar"
155 excludes="**/jmetest/data/**,**/com/**"
158 <attribute name="Implementation-Title" value="${name}"/>
159 <attribute name="Implementation-Vendor" value="${vendor}"/>
160 <attribute name="Version" value="${major}.${minor}"/>
161 <attribute name="Class-Path" value="${jarclasspathlibs} ${jarclasspathrelease}"/>
162 <attribute name="Main-Class" value="${mainclass}"/>
166 <!-- Jar the demo data -->
167 <jar jarfile="${jars}/jmetest-data.jar"
169 includes="**/jmetest/data/**"
173 <target name="webdist-test" depends="dist-test" description="sign test jars for Webstart distribution" >
174 <signjar jar="${jars}/jmetest.jar"
176 keystore="${webstart}/${keyStore}"
177 storepass="${storepass}"
179 <signjar jar="${jars}/jmetest-data.jar"
181 keystore="${webstart}/${keyStore}"
182 storepass="${storepass}"
186 <!-- Jar and sign all the libraries required by jME -->
187 <target name="webdist-nativelibs" description="jar and sign native libraries for Webstart distribution" >
188 <!-- Jar and sign the Windows libraries -->
189 <jar jarfile="${webstart}/lwjgl-windows.jar"
194 <jar jarfile="${webstart}/openal-windows.jar"
196 includes="OpenAL32.dll"
199 <jar jarfile="${webstart}/jinput-windows.jar"
201 includes="jinput-dxplugin.dll"
204 <signjar jar="${webstart}/lwjgl-windows.jar"
206 keystore="${webstart}/${keyStore}"
207 storepass="${storepass}"
209 <signjar jar="${webstart}/openal-windows.jar"
211 keystore="${webstart}/${keyStore}"
212 storepass="${storepass}"
214 <signjar jar="${webstart}/jinput-windows.jar"
216 keystore="${webstart}/${keyStore}"
217 storepass="${storepass}"
220 <!-- Jar and sign Linux native libraries -->
221 <jar jarfile="${webstart}/lwjgl-linux.jar"
223 includes="liblwjgl.so"
226 <jar jarfile="${webstart}/openal-linux.jar"
228 includes="libopenal.so"
231 <jar jarfile="${webstart}/jinput-linux.jar"
233 includes="libjinput-linux.so"
236 <signjar jar="${webstart}/lwjgl-linux.jar"
238 keystore="${webstart}/${keyStore}"
239 storepass="${storepass}"
241 <signjar jar="${webstart}/openal-linux.jar"
243 keystore="${webstart}/${keyStore}"
244 storepass="${storepass}"
246 <signjar jar="${webstart}/jinput-linux.jar"
248 keystore="${webstart}/${keyStore}"
249 storepass="${storepass}"
252 <!-- Jar (eventually) and sign Mac native libraries -->
253 <jar jarfile="${webstart}/lwjgl-mac.jar"
255 includes="liblwjgl.jnilib"
258 <jar jarfile="${webstart}/openal-mac.jar"
260 includes="openal.dylib"
262 /><!--fix me: shouldn't it be a jnilib?-->
263 <jar jarfile="${webstart}/jinput-mac.jar"
265 includes="libjinput.jnilib"
269 <signjar jar="${webstart}/lwjgl-mac.jar"
271 keystore="${webstart}/${keyStore}"
272 storepass="${storepass}"
274 <signjar jar="${webstart}/openal-mac.jar"
276 keystore="${webstart}/${keyStore}"
277 storepass="${storepass}"
279 <signjar jar="${webstart}/jinput-mac.jar"
281 keystore="${webstart}/${keyStore}"
282 storepass="${storepass}"
285 <!-- Sign the lwjgl jar -->
286 <signjar jar="${seg}/lib/lwjgl.jar"
288 keystore="${webstart}/${keyStore}"
289 storepass="${storepass}"
292 <!-- Sign the lwjgl fmod3 jar -->
293 <signjar jar="${seg}/lib/lwjgl_fmod3.jar"
295 keystore="${webstart}/${keyStore}"
296 storepass="${storepass}"
300 <target name="nightly" depends="webdist-all, webdist-nativelibs, webdist-test">
301 <echo>${libs}/*.jar</echo>
302 <zip zipfile="${release}/jME.zip">
303 <zipfileset dir="${libs}" prefix="lib">
304 <include name="*.jar"/>
305 <include name="*.dll"/>
306 <include name="*.so"/>
307 <include name="*.*lib"/>
309 <fileset dir="${release}" >
310 <include name="*.jar"/>
313 <zip zipfile="${release}/src.zip">
314 <zipfileset dir="${src}" prefix="src">
315 <include name="**/*.*"/>
318 <!-- <mkdir dir="ftp"/>-->
319 <!-- <copy todir="ftp">-->
320 <ftp server="ftp.jmonkeyengine.com" userid="${ftpuser}" password="${ftppassword}" remotedir="nightly" >
321 <fileset dir="${webstart}" >
322 <include name="*.jar"/>
323 <include name="*.jnlp"/>
325 <fileset dir="${libs}" >
326 <include name="*.jar"/>
328 <fileset dir="${release}" >
329 <include name="*.jar"/>
330 <include name="jME.zip"/>
331 <include name="src.zip"/>