-<project name="jME" default="compile" basedir=".">
- <description>
- Ant Build File for the jME API.
- </description>
-
- <import file="build-import.xml"/>
-
- <property name="class" location="${build}" />
- <property name="jars" location="${release}" />
- <property name="webstart" location="${seg}/jnlp" />
-
- <property file="build.properties"/>
-<!-- defaults for build.properties:-->
- <property name="keyStore" value="jmeKeyStore"/>
- <property name="storepass" value="..."/>
- <property name="ftpuser" value="..."/>
- <property name="ftppassword" value="..."/>
-<!-- end of defaults -->
-
- <target name="init">
- <echo message="${keyStore}"/>
- <mkdir dir="${src}" />
- <mkdir dir="${class}" />
- <mkdir dir="${data}" />
- <mkdir dir="${doc}" />
- </target>
-
- <!-- Compiles all the jME classes, including com.jmex.* -->
- <target name="compile" depends="init" description="generate jme classes">
- <mkdir dir="${class}" />
- <mkdir dir="${class}/com" />
- <copy todir="${class}/com">
- <fileset dir="${src}/com">
- <exclude name="**/*.java" />
- </fileset>
- </copy>
- <javac source="1.4"
- srcdir="${src}/com"
- destdir="${class}"
- classpath="${seg}/lib/lwjgl.jar:${seg}/lib/lwjgl_fmod3.jar:${seg}/lib/jogg-0.0.5.jar:${seg}/lib/jorbis-0.0.12.jar"
- listfiles="no"
- />
- </target>
-
- <!-- Jar files for different parts of the jME API -->
-
- <target name="dist-core" depends="compile" description="generate jme jar file">
- <jar jarfile="${jars}/jme.jar" basedir="${class}" update="no" compress="false" includes="**/com/jme/**/*.class, **/com/jme/**/*.tga, **/com/jme/**/*.png, **/com/jme/**/*.glf" />
- </target>
- <target name="dist-effects" depends="compile" description="generate jme jar file (effects)">
- <jar jarfile="${jars}/jme-effects.jar" basedir="${class}" update="no" compress="false" includes="**/com/jmex/effects/**/*.class" />
- </target>
- <target name="dist-terrain" depends="compile" description="generate jme jar file (terrain)">
- <jar jarfile="${jars}/jme-terrain.jar" basedir="${class}" update="no" compress="false" includes="**/com/jmex/terrain/**/*.class" />
- </target>
- <target name="dist-model" depends="compile" description="generate jme jar file (model)">
- <jar jarfile="${jars}/jme-model.jar" basedir="${class}" update="no" compress="false" includes="**/com/jmex/model/**/*.class" />
- </target>
- <target name="dist-sound" depends="compile" description="generate jme jar file (sound)">
- <jar jarfile="${jars}/jme-sound.jar" basedir="${class}" update="no" compress="false" includes="**/com/jmex/sound/**/*.class" />
- </target>
- <target name="dist-ui" depends="compile" description="generate jme jar file (ui)">
- <jar jarfile="${jars}/jme-ui.jar" basedir="${class}" update="no" compress="false" includes="**/com/jmex/ui/**/*.class" />
- </target>
-
- <!-- Creates all the jME jars -->
- <target name="dist-all" depends="dist-core, dist-terrain, dist-effects, dist-model, dist-sound, dist-ui" description="Generate all jar files" />
-
- <target name="webdist-all" depends="dist-all" description="sign JARs for JNLP distribution">
- <signjar jar="${jars}/jme.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
- <signjar jar="${jars}/jme-effects.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
- <signjar jar="${jars}/jme-terrain.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
- <signjar jar="${jars}/jme-model.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
- <signjar jar="${jars}/jme-sound.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
- <signjar jar="${jars}/jme-ui.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
- </target>
-
- <!-- Generats javadoc -->
- <target name="doc" depends="compile" description="generate the javadoc documentation">
- <javadoc destdir="${doc}" author="true" version="true" use="true" package="yes" windowtitle="jME API">
- <fileset dir="${src}/com">
- <include name="**/*.java" />
- </fileset>
- </javadoc>
- </target>
-
- <!-- Removes all compiled files and documentation, but leaves any created jars -->
- <target name="clean" description="clean up">
- <delete dir="${class}" />
- <delete dir="${doc}" />
- <delete>
- <fileset dir="${src}" includes="**/*.class" />
- </delete>
- </target>
-
- <target name="rebuild" depends="clean" description="build from clean">
- <ant />
- </target>
-
- <!-- *** jmetest-related build targets -->
-
- <target name="compile-test" depends="init" description="generate jme test classes">
- <javac srcdir="${src}/jmetest"
- destdir="${class}"
- classpath="${jars}/jme.jar:${jars}/jme-effects.jar:${jars}/jme-model.jar:${jars}/jme-terrain.jar:${jars}/jme-ui.jar:${jars}/jme-sound.jar:${seg}/lib/lwjgl.jar:${seg}/lib/lwjgl_fmod3.jar:${seg}/lib/jogg-0.0.5.jar:${seg}/lib/jorbis-0.0.12.jar"
- />
- <!-- copy the resources into the build directory -->
- <copy todir="${class}/jmetest/data">
- <fileset dir="${src}/jmetest/data"/>
- </copy>
- </target>
-
- <target name="dist-test" depends="compile-test" description="generate jme test class and data jars" >
- <!-- Jar the demo classes -->
-
- <pathconvert property="jarclasspathlibs" pathsep=" " dirsep="/">
- <path>
- <fileset dir="${libs}">
- <include name="*.jar"/>
- </fileset>
- </path>
- <mapper type="regexp" from=".*(lib.*)" to="\1"/>
- </pathconvert>
- <pathconvert property="jarclasspathrelease" pathsep=" " dirsep="/">
- <path>
- <fileset dir="${jars}">
- <include name="*.jar"/>
- <exclude name="jmetest.jar"/>
- </fileset>
- </path>
- <mapper type="regexp" from=".*target.(.*)" to="\1"/>
- </pathconvert>
- <echo>${jarclasspathlibs} ${jarclasspathrelease}</echo>
-
- <jar jarfile="${jars}/jmetest.jar"
- basedir="${class}"
- excludes="**/jmetest/data/**,**/com/**"
- index="yes">
- <manifest>
- <attribute name="Implementation-Title" value="${name}"/>
- <attribute name="Implementation-Vendor" value="${vendor}"/>
- <attribute name="Version" value="${major}.${minor}"/>
- <attribute name="Class-Path" value="${jarclasspathlibs} ${jarclasspathrelease}"/>
- <attribute name="Main-Class" value="${mainclass}"/>
- </manifest>
- </jar>
-
- <!-- Jar the demo data -->
- <jar jarfile="${jars}/jmetest-data.jar"
- basedir="${class}"
- includes="**/jmetest/data/**"
- />
- </target>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project name="jME3-SDK" default="default" basedir=".">
+ <description>Builds, tests, and runs the jMonkeyEngine3 SDK.</description>
+ <fail message="Please build using Ant 1.7.1 or higher.">
+ <condition>
+ <not>
+ <antversion atleast="1.7.1"/>
+ </not>
+ </condition>
+ </fail>
+
+ <target name="default" depends="zip"/>
+
+<!-- <target name="build" description="Builds the complete SDK" depends="-check-platform, -update-sdk-platform-config">-->
+ <target name="build" description="Builds the complete SDK">
+ <ant dir="engine" target="update-sdk"/>
+ <ant dir="sdk" target="build"/>
+ </target>
- <target name="webdist-test" depends="dist-test" description="sign test jars for Webstart distribution" >
- <signjar jar="${jars}/jmetest.jar"
- alias="jme"
- keystore="${webstart}/${keyStore}"
- storepass="${storepass}"
- />
- <signjar jar="${jars}/jmetest-data.jar"
- alias="jme"
- keystore="${webstart}/${keyStore}"
- storepass="${storepass}"
- />
- </target>
+ <target name="build-engine" description="Builds the engine libraries only">
+ <ant dir="engine" target="clean"/>
+ <ant dir="engine" target="dist"/>
+ </target>
- <!-- Jar and sign all the libraries required by jME -->
- <target name="webdist-nativelibs" description="jar and sign native libraries for Webstart distribution" >
- <!-- Jar and sign the Windows libraries -->
- <jar jarfile="${webstart}/lwjgl-windows.jar"
- basedir="lib"
- includes="lwjgl.dll"
- update="yes"
- />
- <jar jarfile="${webstart}/openal-windows.jar"
- basedir="lib"
- includes="lwjglaudio.dll"
- update="yes"
- />
- <signjar jar="${webstart}/lwjgl-windows.jar"
- alias="jme"
- keystore="${webstart}/${keyStore}"
- storepass="${storepass}"
- />
- <signjar jar="${webstart}/openal-windows.jar"
- alias="jme"
- keystore="${webstart}/${keyStore}"
- storepass="${storepass}"
- />
+ <target name="clean" description="Clean all build products">
+ <ant dir="engine" target="clean"/>
+ <ant dir="sdk" target="clean"/>
+ </target>
- <!-- Jar and sign Linux native libraries -->
- <jar jarfile="${webstart}/lwjgl-linux.jar"
- basedir="lib"
- includes="liblwjgl.so"
- update="yes"
- />
- <jar jarfile="${webstart}/openal-linux.jar"
- basedir="lib"
- includes="libopenal.so"
- update="yes"
- />
- <signjar jar="${webstart}/lwjgl-linux.jar"
- alias="jme"
- keystore="${webstart}/${keyStore}"
- storepass="${storepass}"
- />
- <signjar jar="${webstart}/openal-linux.jar"
- alias="jme"
- keystore="${webstart}/${keyStore}"
- storepass="${storepass}"
- />
+ <target name="run" description="Runs the SDK">
+ <ant dir="engine" target="update-sdk"/>
+ <ant dir="sdk" target="run"/>
+ </target>
- <!-- Jar (eventually) and sign Mac native libraries -->
- <jar jarfile="${webstart}/lwjgl-mac.jar"
- basedir="lib"
- includes="liblwjgl.jnilib"
- update="yes"
- />
- <jar jarfile="${webstart}/openal-mac.jar"
- basedir="lib"
- includes="libopenal.dylib"
- update="yes"
- /><!--fix me: shouldn't it be a jnilib?-->
+ <target name="zip" description="Builds the complete SDK and packs it as a ZIP file" depends="build">
+ <propertyfile file="sdk/nbproject/project.properties"/>
+ <move file="sdk/dist/${app.name}.zip" tofile="./jMonkeyEngine-GDE-${app.version}.zip"/>
+ </target>
+
+ <target name="update-platform" description="Updates the base platform to the latest available build" depends="-remove-platform,-check-platform"/>
+
+ <target name="-check-platform" depends="-check-platform-present" unless="platform.present">
+ <property file="sdk/nbproject/project.properties"/>
+ <echo message="Downloading base platform, this only has to be done once."/>
+ <!--get src="http://jmonkeyengine.googlecode.com/files/platform-base.zip" dest="./" skipexisting="true"/-->
+ <get src="http://jmonkeyengine.com/platform/base/alpha/platform-base.zip" dest="./" skipexisting="false"/>
+ <!--get src="http://jmonkeyengine.com/updates/${app.version}/platform-base.zip" dest="./" skipexisting="false"/-->
+ <unzip src="platform-base.zip" dest="./"/>
+ <antcall target="-update-sdk-platform-config"/>
+ <delete file="platform-base.zip"/>
+ </target>
- <signjar jar="${webstart}/lwjgl-mac.jar"
- alias="jme"
- keystore="${webstart}/${keyStore}"
- storepass="${storepass}"
- />
- <signjar jar="${webstart}/openal-mac.jar"
- alias="jme"
- keystore="${webstart}/${keyStore}"
- storepass="${storepass}"
- />
+ <target name="-check-platform-present">
+ <available file="netbeans" property="platform.present"/>
+ </target>
- <!-- Sign the lwjgl jar -->
- <signjar jar="${seg}/lib/lwjgl.jar"
- alias="jme"
- keystore="${webstart}/${keyStore}"
- storepass="${storepass}"
- />
+ <target name="-remove-platform">
+ <delete dir="netbeans" failonerror="false"/>
+ </target>
- <!-- Sign the lwjgl fmod3 jar -->
- <signjar jar="${seg}/lib/lwjgl_fmod3.jar"
- alias="jme"
- keystore="${webstart}/${keyStore}"
- storepass="${storepass}"
- />
- </target>
+ <target name="-update-sdk-platform-config">
+ <property name="nbplatform.dir" location="netbeans"/>
+ <mkdir dir="sdk/nbproject/private"/>
+ <echo file="sdk/nbproject/private/platform-private.properties"
+ message="nbplatform.default.netbeans.dest.dir=${nbplatform.dir}
"/>
+ <echo file="sdk/nbproject/private/platform-private.properties"
+ message="nbplatform.default.harness.dir=${nbplatform.dir}${file.separator}harness
" append="true"/>
+ <replace file="sdk/nbproject/private/platform-private.properties" token="\" value="\\"/>
+ </target>
+
+ <!--
+ ****************************************************************
+ Only Relevant for building nightly on Hudson server from here on
+ ****************************************************************
+ -->
+
+ <target name="hudson-nightly" depends="update-platform">
+ <exec executable="svn" dir="engine">
+ <arg value="update" />
+ </exec>
+ <ant dir="engine" target="dist"/>
+ <ant dir="engine" target="build-bullet-natives"/>
+ <ant dir="engine" target="update-sdk"/>
+ <ant dir="sdk" target="hudson-nightly"/>
+ </target>
- <target name="nightly" depends="webdist-all, webdist-nativelibs, webdist-test">
-<!-- <target name="nightly">-->
- <echo>${libs}/*.jar</echo>
- <zip zipfile="${release}/jME.zip">
- <zipfileset dir="${libs}" prefix="lib">
- <include name="*.jar"/>
- <include name="*.dll"/>
- <include name="*.so"/>
- <include name="*.*lib"/>
- </zipfileset>
- <fileset dir="${release}" >
- <include name="*.jar"/>
- </fileset>
- </zip>
-<!-- <mkdir dir="ftp"/>-->
-<!-- <copy todir="ftp">-->
- <ftp server="ftp.jmonkeyengine.com" userid="${ftpuser}" password="${ftppassword}" remotedir="nightly" >
- <fileset dir="${webstart}" >
- <include name="*.jar"/>
- </fileset>
- <fileset dir="${libs}" >
- <include name="*.jar"/>
- </fileset>
- <fileset dir="${release}" >
- <include name="*.jar"/>
- <include name="jME.zip"/>
- </fileset>
- </ftp>
-<!-- </copy>-->
+ <target name="hudson-stable" depends="update-platform">
+ <exec executable="svn" dir="engine">
+ <arg value="update" />
+ </exec>
+ <ant dir="engine" target="dist"/>
+ <ant dir="engine" target="build-bullet-natives"/>
+ <ant dir="engine" target="update-sdk"/>
+ <ant dir="sdk" target="hudson-stable"/>
</target>
-</project>
\ No newline at end of file
+</project>