A complete 3D game development suite written purely in Java.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jmonkeyengine/engine/build.xml

359 lines
18 KiB

<?xml version="1.0" encoding="UTF-8"?>
<project name="jMonkeyEngine3" default="default" basedir=".">
<description>Builds, tests, and runs the project jME3_ordered.</description>
<import file="nbproject/build-impl.xml"/>
<!-- <import file="nbproject/profiler-build-impl.xml"/> -->
<target name="-post-compile" depends="-compile-bullet, -compile-android">
</target>
<target name="-pre-jar" depends="-prepare-separate-jar-files">
</target>
<target name="-post-jar" depends="-create-optional-packages">
</target>
<!-- compiles the java classes of the native bullet version (works on all systems) -->
<target name="-compile-bullet">
<echo message="Compiling Bullet"/>
<mkdir dir="build/bullet"/>
<javac classpath="${javac.classpath}${path.separator}${build.classes.dir}" destdir="build/bullet" srcdir="src/bullet"/>
<jar jarfile="build/jME3-bullet.jar" basedir="build/bullet/" compress="true"/>
</target>
<!-- compiles the android jar for jME3 -->
<target name="-compile-android" description="builds the jMonkeyEngine3 distribution for android">
<echo message="Compiling Android jMonkeyEngin3.jar"/>
<path id="android-classpath">
<pathelement path="lib/android/android.jar"/>
<pathelement path="build/classes"/>
</path>
<mkdir dir="build/android"/>
<javac target="1.6"
encoding="UTF-8"
debug="true"
deprecation="on"
srcdir="src/android"
destdir="build/android"
classpathref="android-classpath"
excludes="**/OGLESRenderer.java,**/TestsActivity.java,**/AboutActivity.java"/>
</target>
<!--this target creates the separate jar files for jme3 and modifies the classpath to include them-->
<target name="-prepare-separate-jar-files">
<echo message="Preparing jME3 jar files"/>
<!--separate test classes-->
<mkdir dir="build/testclasses/"/>
<move file="build/classes/jme3test" todir="build/testclasses/" failonerror="false"/>
<move file="build/classes/jme3game" todir="build/testclasses/" failonerror="false"/>
<jar jarfile="build/jME3-test.jar" basedir="build/testclasses/" compress="true"/>
<!--separate jbullet physics classes-->
<mkdir dir="build/jbullet/com/jme3/"/>
<move file="build/classes/com/jme3/bullet" todir="build/jbullet/com/jme3/" failonerror="false"/>
<jar jarfile="build/jME3-jbullet.jar" basedir="build/jbullet/" compress="true"/>
<!--separate assets-->
<jar jarfile="build/jME3-testdata.jar" basedir="src/test-data" compress="true"/>
<property location="src/test-data" name="testdata.dir.resolved"/>
<property location="build/jME3-testdata.jar" name="testdata.jar.resolved"/>
<!--this sets properties that would normally later be created in the build-impl.xml-->
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
<pathconvert property="run.classpath.without.build.classes.dir">
<path path="${run.classpath}"/>
<map from="${build.classes.dir.resolved}" to=""/>
<!--replace assets folder in dist classpath-->
<map from="${testdata.dir.resolved}" to="${testdata.jar.resolved}"/>
<!--add both bullet jar files to dist classpath, will both be in manifest-->
<path path="build/jME3-jbullet.jar"/>
<path path="build/jME3-bullet.jar"/>
<path path="build/jME3-test.jar"/>
</pathconvert>
</target>
<!--separates and packs the optional packages-->
<target name="-create-optional-packages">
<echo message="Creating optional packages"/>
<!--native bullet-->
<mkdir dir="dist/opt/native-bullet"/>
<mkdir dir="dist/opt/native-bullet/lib"/>
<!--ant antfile="src/bullet/native/build.xml" target="bullet-api-diff"/-->
<!--move file="bullet-api-diff.html" todir="dist/opt/native-bullet" overwrite="true"/-->
<move file="dist/lib/jME3-bullet.jar" todir="dist/opt/native-bullet/lib" overwrite="true"/>
<move file="dist/lib/jME3-bullet-natives.jar" todir="dist/opt/native-bullet/lib" overwrite="true"/>
<!--android-->
<mkdir dir="dist/opt/android"/>
<jar jarfile="dist/opt/android/jMonkeyEngine3.jar"
basedir="build/android"
/>
<jar jarfile="dist/opt/android/jMonkeyEngine3.jar"
basedir="build/classes"
excludes="com/jme3/system/JmeSystem*"
update="true"/>
<!--<jar jarfile="dist/opt/jME3-android-tests.jar"
basedir="build/testclasses"/>-->
</target>
<!-- compiles the *native binary* of the native bullet version (read bullet-native-build.txt for more info) -->
<target name="build-bullet-natives" description="uses native build tools to build the bulletjme binary (read bullet-native-build.txt for more info)">
<ant antfile="src/bullet/native/build.xml" target="build-bullet-natives"/>
</target>
<!-- overrides javadoc generation to only include relevant classes -->
<target depends="init" if="have.sources" name="-javadoc-build">
<mkdir dir="${dist.javadoc.dir}"/>
<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}">
<classpath>
<path path="${javac.classpath}"/>
</classpath>
<fileset dir="${src.core.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.terrain.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.networking.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.desktop-fx.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.jbullet.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.niftygui.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.tools.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.xml.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
<filename name="**/*.java"/>
</fileset>
</javadoc>
<copy todir="${dist.javadoc.dir}">
<fileset dir="${src.core.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.terrain.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.networking.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.desktop-fx.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.jbullet.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.niftygui.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.tools.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.xml.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
<include name="**/doc-files/**"/>
</fileset>
</copy>
</target>
<!--
****************************************************************
Only Relevant for building the SDK from here on
****************************************************************
-->
<!-- convenience target to transfer jme3 libraries to sdk (jMonkeyPlatform) -->
<target name="update-sdk" depends="jar, javadoc">
<antcall target="-do-update-sdk" inheritall="true">
<param name="jmp_dir" value="../sdk/"/>
</antcall>
</target>
<target name="-do-update-sdk">
<fileset id="jme3-jars" dir="dist/">
<include name="**/jME3-jbullet.jar"/>
<include name="**/jME3-bullet.jar"/>
<include name="**/jME3-bullet-natives.jar"/>
</fileset>
<!--clear old files-->
<delete dir="${jmp_dir}/JME3TestsTemplate/src/"/>
<delete dir="${jmp_dir}/jme3-core-baselibs/release/modules/ext/"/>
<delete dir="${jmp_dir}/jme3-core-libraries/release/modules/ext/"/>
<delete dir="${jmp_dir}/jme3-project-libraries/release/libs/"/>
<delete dir="${jmp_dir}/jme3-project-baselibs/release/libs/"/>
<delete dir="${jmp_dir}/jme3-project-testdata/release/libs/"/>
<!--jMonkeyPlatform jME3 libs-->
<copy file="${dist.jar}" toDir="${jmp_dir}/jme3-core-baselibs/release/modules/ext/" overwrite="true" failonerror="true" verbose="false"/>
<copy toDir="${jmp_dir}/jme3-core-baselibs/release/modules/ext/" overwrite="true" failonerror="true" verbose="false" flatten="true">
<fileset refid="jme3-jars"/>
</copy>
<!--natives need to be in jme3 package for jme to work in jMP-->
<copy file="dist/lib/jME3-lwjgl-natives.jar" toDir="${jmp_dir}/jme3-core-baselibs/release/modules/ext/" overwrite="true" failonerror="true" verbose="false"/>
<!--jMonkeyPlatform Android libs-->
<copy file="dist/opt/android/jMonkeyEngine3.jar" toFile="${jmp_dir}/jme3-project-baselibs/release/libs/jMonkeyEngine3-android.jar" overwrite="true" failonerror="true" verbose="false"/>
<!--Project jME3 libs-->
<copy file="${dist.jar}" toDir="${jmp_dir}/jme3-project-baselibs/release/libs/" overwrite="true" failonerror="true" verbose="false"/>
<copy toDir="${jmp_dir}/jme3-project-baselibs/release/libs/" overwrite="true" failonerror="true" verbose="false" flatten="true">
<fileset refid="jme3-jars"/>
</copy>
<!--jMonkeyPlatform external libraries-->
<copy todir="${jmp_dir}/jme3-core-libraries/release/modules/ext/" overwrite="true" failonerror="true" verbose="false" flatten="true">
<!--exclude jme3 test data from core-->
<fileset dir="dist/lib/">
<exclude name="jME3-**"/>
</fileset>
</copy>
<!--Project external libraries-->
<copy todir="${jmp_dir}/jme3-project-libraries/release/libs/" overwrite="true" failonerror="true" verbose="false" flatten="true">
<!--exclude jme3 test data from libs-->
<fileset dir="dist/lib/">
<exclude name="jME3-**"/>
</fileset>
<!--lwjgl is an external library but has the "jME3-" prefix-->
<fileset dir="dist/lib/">
<include name="jME3-lwjgl-natives.jar"/>
</fileset>
<fileset dir="lib/niftygui/">
<include name="nifty-javadoc.jar"/>
<include name="nifty-default-controls-javadoc.jar"/>
</fileset>
</copy>
<!--test data-->
<copy file="dist/lib/jME3-testdata.jar" toDir="${jmp_dir}/jme3-project-testdata/release/libs/" overwrite="true" failonerror="true" verbose="false"/>
<!--javadoc-->
<zip destfile="dist/jMonkeyEngine3-javadoc.zip">
<zipfileset dir="dist/javadoc/"/>
</zip>
<copy file="dist/jMonkeyEngine3-javadoc.zip" toDir="${jmp_dir}/jme3-project-baselibs/release/libs/" overwrite="true" failonerror="true" verbose="false"/>
<!--sources-->
<zip destfile="dist/jMonkeyEngine3-sources.zip">
<zipfileset dir="${src.core.dir}"/>
<zipfileset dir="${src.core-data.dir}"/>
<zipfileset dir="${src.core-plugins.dir}"/>
<zipfileset dir="${src.desktop.dir}"/>
<zipfileset dir="${src.desktop-fx.dir}"/>
<zipfileset dir="${src.games.dir}"/>
<zipfileset dir="${src.jbullet.dir}"/>
<zipfileset dir="${src.niftygui.dir}"/>
<zipfileset dir="${src.jogg.dir}"/>
<zipfileset dir="${src.lwjgl-oal.dir}"/>
<zipfileset dir="${src.lwjgl-ogl.dir}"/>
<zipfileset dir="${src.ogre.dir}"/>
<zipfileset dir="${src.pack.dir}"/>
<zipfileset dir="${src.jheora.dir}"/>
<zipfileset dir="${src.test.dir}"/>
<zipfileset dir="${src.tools.dir}"/>
<zipfileset dir="${src.xml.dir}"/>
<zipfileset dir="${src.terrain.dir}"/>
<zipfileset dir="${src.networking.dir}"/>
</zip>
<copy file="dist/jMonkeyEngine3-sources.zip" toDir="${jmp_dir}/jme3-project-baselibs/release/libs/" overwrite="true" failonerror="true" verbose="false"/>
<!--examples-->
<copy todir="${jmp_dir}/JME3TestsTemplate/src/" overwrite="true" failonerror="true" verbose="false">
<fileset dir="src/test/">
<exclude name=".svn"/>
</fileset>
</copy>
</target>
<!--
****************************************************************
Only Relevant for building nightly on Hudson server from here on
****************************************************************
-->
<!-- puts jme3 jars, libs, source and javadoc in a dated zip file -->
<target name="dist" depends="clean, jar, javadoc" description="puts jme3 jars, libs, source and javadoc in a dated zip file">
<!-- create date in the format MM-dd-yyyy -->
<tstamp>
<format property="date" pattern="yyyy-MM-dd" locale="en,US"/>
</tstamp>
<property name="jme3zip" value="jME3_${date}.zip"/>
<!-- make zip file -->
<zip destfile="${jme3zip}">
<fileset dir=".">
<include name="TestChooser.exe"/>
<include name="README.TXT"/>
</fileset>
<fileset dir="dist/">
<include name="jMonkeyEngine3.jar"/>
</fileset>
<zipfileset dir="dist/lib" prefix="lib"/>
<zipfileset dir="dist/opt" prefix="opt"/>
<zipfileset dir="dist/javadoc" prefix="javadoc"/>
<zipfileset dir="${src.core.dir}" prefix="source"/>
<zipfileset dir="${src.core-data.dir}" prefix="source"/>
<zipfileset dir="${src.core-plugins.dir}" prefix="source"/>
<zipfileset dir="${src.desktop.dir}" prefix="source"/>
<zipfileset dir="${src.desktop-fx.dir}" prefix="source"/>
<zipfileset dir="${src.games.dir}" prefix="source"/>
<zipfileset dir="${src.jbullet.dir}" prefix="source"/>
<zipfileset dir="${src.niftygui.dir}" prefix="source"/>
<zipfileset dir="${src.jogg.dir}" prefix="source"/>
<zipfileset dir="${src.lwjgl-oal.dir}" prefix="source"/>
<zipfileset dir="${src.lwjgl-ogl.dir}" prefix="source"/>
<zipfileset dir="${src.ogre.dir}" prefix="source"/>
<zipfileset dir="${src.pack.dir}" prefix="source"/>
<zipfileset dir="${src.jheora.dir}" prefix="source"/>
<zipfileset dir="${src.test.dir}" prefix="source"/>
<zipfileset dir="${src.tools.dir}" prefix="source"/>
<zipfileset dir="${src.xml.dir}" prefix="source"/>
<zipfileset dir="${src.terrain.dir}" prefix="source"/>
<zipfileset dir="${src.networking.dir}" prefix="source"/>
</zip>
</target>
<!-- copy jme3 zip to jmonkeyengine.com/nightly -->
<target name="deploy-hudson-nightly" depends="dist, build-bullet-natives">
<copy
file="${jme3zip}"
toDir="/var/www/com/stable" overwrite="true" failonerror="true" verbose="false"
/>
<copydir
src="dist/javadoc/" dest="/var/www/org/javadoc/" forceoverwrite="true"
/>
</target>
<!-- copy jme3 zip to jmonkeyengine.com/nightly -->
<target name="deploy-hudson-stable" depends="dist, build-bullet-natives">
<copy
file="${jme3zip}"
toDir="/var/www/com/stable" overwrite="true" failonerror="true" verbose="false"
/>
<copydir
src="dist/javadoc/" dest="/var/www/org/javadoc/" forceoverwrite="true"
/>
</target>
<target name="copy-javadoc">
<copydir
src="dist/javadoc/" dest="/var/www/org/javadoc/" forceoverwrite="true"
/>
</target>
</project>