1 <?xml version="1.0" encoding="UTF-8"?>
3 <project name="jMonkeyEngine3" default="default" basedir=".">
4 <description>Builds, tests, and runs the project jME3_ordered.</description>
5 <import file="nbproject/build-impl.xml"/>
6 <!-- <import file="nbproject/profiler-build-impl.xml"/> -->
8 <target name="-post-compile" depends="-compile-bullet, -compile-android">
11 <target name="-pre-jar" depends="-prepare-separate-jar-files">
14 <target name="-post-jar" depends="-create-optional-packages">
17 <!-- compiles the java classes of the native bullet version (works on all systems) -->
18 <target name="-compile-bullet">
19 <echo message="Compiling Bullet"/>
20 <mkdir dir="build/bullet"/>
21 <javac classpath="${javac.classpath}${path.separator}${build.classes.dir}" destdir="build/bullet" srcdir="src/bullet" source="1.6" target="1.6"/>
22 <jar jarfile="build/jME3-bullet.jar" basedir="build/bullet/" compress="true"/>
25 <!-- compiles the android jar for jME3 -->
26 <target name="-compile-android" description="builds the jMonkeyEngine3 distribution for android">
27 <echo message="Compiling Android jMonkeyEngin3.jar"/>
28 <path id="android-classpath">
29 <pathelement path="lib/android/android.jar"/>
30 <pathelement path="build/classes"/>
32 <mkdir dir="build/android"/>
39 destdir="build/android"
40 classpathref="android-classpath"
41 excludes="**/OGLESRenderer.java,**/TestsActivity.java,**/AboutActivity.java"/>
44 <!--this target creates the separate jar files for jme3 and modifies the classpath to include them-->
45 <target name="-prepare-separate-jar-files">
46 <echo message="Preparing jME3 jar files"/>
47 <!--separate test classes-->
48 <mkdir dir="build/testclasses/"/>
49 <move file="build/classes/jme3test" todir="build/testclasses/" failonerror="false"/>
50 <move file="build/classes/jme3game" todir="build/testclasses/" failonerror="false"/>
51 <jar jarfile="build/jME3-test.jar" basedir="build/testclasses/" compress="true"/>
53 <!-- separate jbullet physics classes
54 <mkdir dir="build/jbullet/com/jme3/"/>
55 <move file="build/classes/com/jme3/bullet" todir="build/jbullet/com/jme3/" failonerror="false"/>
56 <jar jarfile="build/jME3-jbullet.jar" basedir="build/jbullet/" compress="true"/>-->
58 <!--separate assets-->
59 <jar jarfile="build/jME3-testdata.jar" basedir="src/test-data" compress="true"/>
60 <property location="src/test-data" name="testdata.dir.resolved"/>
61 <property location="build/jME3-testdata.jar" name="testdata.jar.resolved"/>
63 <!--this sets properties that would normally later be created in the build-impl.xml-->
64 <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
65 <pathconvert property="run.classpath.without.build.classes.dir">
66 <path path="${run.classpath}"/>
67 <map from="${build.classes.dir.resolved}" to=""/>
69 <!--replace assets folder in dist classpath-->
70 <map from="${testdata.dir.resolved}" to="${testdata.jar.resolved}"/>
72 <!--add both bullet jar files to dist classpath, will both be in manifest-->
73 <!-- <path path="build/jME3-jbullet.jar"/>-->
74 <path path="build/jME3-bullet.jar"/>
75 <path path="build/jME3-test.jar"/>
79 <!--separates and packs the optional packages-->
80 <target name="-create-optional-packages">
81 <echo message="Creating optional packages"/>
83 <mkdir dir="dist/opt/native-bullet"/>
84 <mkdir dir="dist/opt/native-bullet/lib"/>
85 <!--ant antfile="src/bullet/native/build.xml" target="bullet-api-diff"/-->
86 <!--move file="bullet-api-diff.html" todir="dist/opt/native-bullet" overwrite="true"/-->
87 <move file="dist/lib/jME3-bullet.jar" todir="dist/opt/native-bullet/lib" overwrite="true"/>
88 <move file="dist/lib/jME3-bullet-natives.jar" todir="dist/opt/native-bullet/lib" overwrite="true"/>
91 <mkdir dir="dist/opt/android"/>
92 <jar jarfile="dist/opt/android/jMonkeyEngine3.jar"
93 basedir="build/android"
95 <jar jarfile="dist/opt/android/jMonkeyEngine3.jar"
96 basedir="build/classes"
97 excludes="com/jme3/system/JmeSystem*"
99 <!--<jar jarfile="dist/opt/jME3-android-tests.jar"
100 basedir="build/testclasses"/>-->
103 <!-- compiles the *native binary* of the native bullet version (read bullet-native-build.txt for more info) -->
104 <target name="build-bullet-natives" description="uses native build tools to build the bulletjme binary (read bullet-native-build.txt for more info)">
105 <ant antfile="src/bullet/native/build.xml" target="build-bullet-natives"/>
108 <!-- overrides javadoc generation to only include relevant classes -->
109 <target depends="init" if="have.sources" name="-javadoc-build">
110 <mkdir dir="${dist.javadoc.dir}"/>
111 <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
113 <path path="${javac.classpath}"/>
115 <fileset dir="${src.core.dir}" excludes="${excludes}" includes="${includes}">
116 <filename name="**/*.java"/>
118 <fileset dir="${src.terrain.dir}" excludes="${excludes}" includes="${includes}">
119 <filename name="**/*.java"/>
121 <fileset dir="${src.networking.dir}" excludes="${excludes}" includes="${includes}">
122 <filename name="**/*.java"/>
124 <fileset dir="${src.desktop-fx.dir}" excludes="${excludes}" includes="${includes}">
125 <filename name="**/*.java"/>
127 <!-- <fileset dir="${src.jbullet.dir}" excludes="${excludes}" includes="${includes}">
128 <filename name="**/*.java"/>
130 <fileset dir="src/bullet/com" excludes="${excludes}" includes="${includes}">
131 <filename name="**/*.java"/>
133 <fileset dir="src/bullet/projectkyoto" excludes="${excludes}" includes="${includes}">
134 <filename name="**/*.java"/>
136 <fileset dir="${src.mmd.dir}" excludes="${excludes}" includes="${includes}">
137 <filename name="**/*.java"/>
139 <fileset dir="${src.niftygui.dir}" excludes="${excludes}" includes="${includes}">
140 <filename name="**/*.java"/>
142 <fileset dir="${src.tools.dir}" excludes="${excludes}" includes="${includes}">
143 <filename name="**/*.java"/>
145 <fileset dir="${src.xml.dir}" excludes="${excludes}" includes="${includes}">
146 <filename name="**/*.java"/>
148 <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
149 <filename name="**/*.java"/>
152 <copy todir="${dist.javadoc.dir}">
153 <fileset dir="${src.core.dir}" excludes="${excludes}" includes="${includes}">
154 <filename name="**/doc-files/**"/>
156 <fileset dir="${src.terrain.dir}" excludes="${excludes}" includes="${includes}">
157 <filename name="**/doc-files/**"/>
159 <fileset dir="${src.networking.dir}" excludes="${excludes}" includes="${includes}">
160 <filename name="**/doc-files/**"/>
162 <fileset dir="${src.desktop-fx.dir}" excludes="${excludes}" includes="${includes}">
163 <filename name="**/doc-files/**"/>
165 <!-- <fileset dir="${src.jbullet.dir}" excludes="${excludes}" includes="${includes}">
166 <filename name="**/doc-files/**"/>
168 <fileset dir="${src.mmd.dir}" excludes="${excludes}" includes="${includes}">
169 <filename name="**/doc-files/**"/>
171 <fileset dir="${src.niftygui.dir}" excludes="${excludes}" includes="${includes}">
172 <filename name="**/doc-files/**"/>
174 <fileset dir="${src.tools.dir}" excludes="${excludes}" includes="${includes}">
175 <filename name="**/doc-files/**"/>
177 <fileset dir="${src.xml.dir}" excludes="${excludes}" includes="${includes}">
178 <filename name="**/doc-files/**"/>
180 <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
181 <include name="**/doc-files/**"/>
187 ****************************************************************
188 Only Relevant for building the SDK from here on
189 ****************************************************************
192 <!-- convenience target to transfer jme3 libraries to sdk (jMonkeyPlatform) -->
193 <target name="update-sdk" depends="jar, javadoc">
194 <antcall target="-do-update-sdk" inheritall="true">
195 <param name="jmp_dir" value="../sdk/"/>
199 <target name="-do-update-sdk">
200 <fileset id="jme3-jars" dir="dist/">
201 <!-- <include name="**/jME3-jbullet.jar"/>-->
202 <include name="**/jME3-bullet.jar"/>
203 <include name="**/jME3-bullet-natives.jar"/>
205 <!-- <fileset id="mmd-jars" dir="lib/">
206 <include name="MMDLoaderJME3-lib.jar"/>
207 <include name="MMDLoaderJME3-source.jar"/>
208 <include name="MMDLoaderJME3-javadoc.jar"/>
211 <!--clear old files-->
212 <delete dir="${jmp_dir}/JME3TestsTemplate/src/"/>
213 <delete dir="${jmp_dir}/jme3-core-baselibs/release/modules/ext/"/>
214 <delete dir="${jmp_dir}/jme3-core-libraries/release/modules/ext/"/>
215 <delete dir="${jmp_dir}/jme3-project-libraries/release/libs/"/>
216 <delete dir="${jmp_dir}/jme3-project-baselibs/release/libs/"/>
217 <delete dir="${jmp_dir}/jme3-project-testdata/release/libs/"/>
219 <!--jMonkeyPlatform jME3 libs-->
220 <copy file="${dist.jar}" toDir="${jmp_dir}/jme3-core-baselibs/release/modules/ext/" overwrite="true" failonerror="true" verbose="false"/>
221 <copy toDir="${jmp_dir}/jme3-core-baselibs/release/modules/ext/" overwrite="true" failonerror="true" verbose="false" flatten="true">
222 <fileset refid="jme3-jars"/>
223 <fileset refid="mmd-jars"/>
225 <!--natives need to be in jme3 package for jme to work in jMP-->
226 <copy file="dist/lib/jME3-lwjgl-natives.jar" toDir="${jmp_dir}/jme3-core-baselibs/release/modules/ext/" overwrite="true" failonerror="true" verbose="false"/>
228 <!--jMonkeyPlatform Android libs-->
229 <copy file="dist/opt/android/jMonkeyEngine3.jar" toFile="${jmp_dir}/jme3-project-baselibs/release/libs/jMonkeyEngine3-android.jar" overwrite="true" failonerror="true" verbose="false"/>
231 <!--Project jME3 libs-->
232 <copy file="${dist.jar}" toDir="${jmp_dir}/jme3-project-baselibs/release/libs/" overwrite="true" failonerror="true" verbose="false"/>
233 <copy toDir="${jmp_dir}/jme3-project-baselibs/release/libs/" overwrite="true" failonerror="true" verbose="false" flatten="true">
234 <fileset refid="jme3-jars"/>
235 <fileset refid="mmd-jars"/>
238 <!--jMonkeyPlatform external libraries-->
239 <copy todir="${jmp_dir}/jme3-core-libraries/release/modules/ext/" overwrite="true" failonerror="true" verbose="false" flatten="true">
240 <!--exclude jme3 test data from core-->
241 <fileset dir="dist/lib/">
242 <exclude name="jME3-**"/>
246 <!--Project external libraries-->
247 <copy todir="${jmp_dir}/jme3-project-libraries/release/libs/" overwrite="true" failonerror="true" verbose="false" flatten="true">
248 <!--exclude jme3 test data from libs-->
249 <fileset dir="dist/lib/">
250 <exclude name="jME3-**"/>
252 <!--lwjgl is an external library but has the "jME3-" prefix-->
253 <fileset dir="dist/lib/">
254 <include name="jME3-lwjgl-natives.jar"/>
256 <fileset dir="lib/niftygui/">
257 <include name="nifty-javadoc.jar"/>
258 <include name="nifty-default-controls-javadoc.jar"/>
263 <copy file="dist/lib/jME3-testdata.jar" toDir="${jmp_dir}/jme3-project-testdata/release/libs/" overwrite="true" failonerror="true" verbose="false"/>
266 <zip destfile="dist/jMonkeyEngine3-javadoc.zip">
267 <zipfileset dir="dist/javadoc/"/>
269 <copy file="dist/jMonkeyEngine3-javadoc.zip" toDir="${jmp_dir}/jme3-project-baselibs/release/libs/" overwrite="true" failonerror="true" verbose="false"/>
272 <zip destfile="dist/jMonkeyEngine3-sources.zip">
273 <zipfileset dir="${src.core.dir}"/>
274 <zipfileset dir="${src.core-data.dir}"/>
275 <zipfileset dir="${src.core-plugins.dir}"/>
276 <zipfileset dir="${src.desktop.dir}"/>
277 <zipfileset dir="${src.desktop-fx.dir}"/>
278 <zipfileset dir="${src.games.dir}"/>
279 <!-- <zipfileset dir="${src.jbullet.dir}"/>-->
280 <zipfileset dir="${src.mmd.dir}"/>
281 <zipfileset dir="${src.niftygui.dir}"/>
282 <zipfileset dir="${src.jogg.dir}"/>
283 <zipfileset dir="${src.lwjgl-oal.dir}"/>
284 <zipfileset dir="${src.lwjgl-ogl.dir}"/>
285 <zipfileset dir="${src.ogre.dir}"/>
286 <zipfileset dir="${src.pack.dir}"/>
287 <zipfileset dir="${src.jheora.dir}"/>
288 <zipfileset dir="${src.test.dir}"/>
289 <zipfileset dir="${src.tools.dir}"/>
290 <zipfileset dir="${src.xml.dir}"/>
291 <zipfileset dir="${src.terrain.dir}"/>
292 <zipfileset dir="${src.networking.dir}"/>
294 <copy file="dist/jMonkeyEngine3-sources.zip" toDir="${jmp_dir}/jme3-project-baselibs/release/libs/" overwrite="true" failonerror="true" verbose="false"/>
297 <copy todir="${jmp_dir}/JME3TestsTemplate/src/" overwrite="true" failonerror="true" verbose="false">
298 <fileset dir="src/test/">
299 <exclude name=".svn"/>
305 ****************************************************************
306 Only Relevant for building nightly on Hudson server from here on
307 ****************************************************************
310 <!-- puts jme3 jars, libs, source and javadoc in a dated zip file -->
311 <target name="dist" depends="clean, jar, javadoc" description="puts jme3 jars, libs, source and javadoc in a dated zip file">
312 <!-- create date in the format MM-dd-yyyy -->
314 <format property="date" pattern="yyyy-MM-dd" locale="en,US"/>
316 <property name="jme3zip" value="jME3_${date}.zip"/>
317 <!-- make zip file -->
318 <zip destfile="${jme3zip}">
320 <include name="TestChooser.exe"/>
321 <include name="README.TXT"/>
323 <fileset dir="dist/">
324 <include name="jMonkeyEngine3.jar"/>
326 <zipfileset dir="dist/lib" prefix="lib"/>
327 <zipfileset dir="dist/opt" prefix="opt"/>
328 <zipfileset dir="dist/javadoc" prefix="javadoc"/>
329 <zipfileset dir="${src.core.dir}" prefix="source"/>
330 <zipfileset dir="${src.core-data.dir}" prefix="source"/>
331 <zipfileset dir="${src.core-plugins.dir}" prefix="source"/>
332 <zipfileset dir="${src.desktop.dir}" prefix="source"/>
333 <zipfileset dir="${src.desktop-fx.dir}" prefix="source"/>
334 <zipfileset dir="${src.games.dir}" prefix="source"/>
335 <!-- <zipfileset dir="${src.jbullet.dir}" prefix="source"/>-->
336 <zipfileset dir="${src.mmd.dir}" prefix="source"/>
337 <zipfileset dir="${src.niftygui.dir}" prefix="source"/>
338 <zipfileset dir="${src.jogg.dir}" prefix="source"/>
339 <zipfileset dir="${src.lwjgl-oal.dir}" prefix="source"/>
340 <zipfileset dir="${src.lwjgl-ogl.dir}" prefix="source"/>
341 <zipfileset dir="${src.ogre.dir}" prefix="source"/>
342 <zipfileset dir="${src.pack.dir}" prefix="source"/>
343 <zipfileset dir="${src.jheora.dir}" prefix="source"/>
344 <zipfileset dir="${src.test.dir}" prefix="source"/>
345 <zipfileset dir="${src.tools.dir}" prefix="source"/>
346 <zipfileset dir="${src.xml.dir}" prefix="source"/>
347 <zipfileset dir="${src.terrain.dir}" prefix="source"/>
348 <zipfileset dir="${src.networking.dir}" prefix="source"/>
352 <!-- copy jme3 zip to jmonkeyengine.com/nightly -->
353 <target name="deploy-hudson-nightly" depends="dist, build-bullet-natives">
356 toDir="/var/www/com/stable" overwrite="true" failonerror="true" verbose="false"
359 src="dist/javadoc/" dest="/var/www/org/javadoc/" forceoverwrite="true"
363 <!-- copy jme3 zip to jmonkeyengine.com/nightly -->
364 <target name="deploy-hudson-stable" depends="dist, build-bullet-natives">
367 toDir="/var/www/com/stable" overwrite="true" failonerror="true" verbose="false"
370 src="dist/javadoc/" dest="/var/www/org/javadoc/" forceoverwrite="true"