OSDN Git Service

Update niftygui 1.3.3
[mikumikustudio/MikuMikuStudio.git] / build.xml
old mode 100755 (executable)
new mode 100644 (file)
index 04c022b..04bb50f
--- a/build.xml
+++ b/build.xml
-<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="..."/>
-    <property name="ftphost" value="ftp.jmonkeyengine.com"/>
-    <!--    end of defaults -->
-
-    <path id="classpath">
-        <fileset dir="${libs}">
-            <include name="*.jar"/>
-        </fileset>
-        <pathelement path="${class}"/>
-    </path>
-
-       <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.5" target="1.5"
-                      srcdir="${src}/com"
-                      destdir="${class}"
-                      classpathref="classpath"
-                          listfiles="no"
-               />
-       </target>
-
-    <target name="run-testchooser" depends="compile-test" description="Runs the TestChooser">
-        <java classname="jmetest.TestChooser"
-              fork="true"
-              classpathref="classpath">
-            <jvmarg value="-Djava.library.path=${libs}"/>
-        </java>
+<?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>
 
-       <!-- 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-awt" depends="compile" description="generate jme jar file (awt)">
-               <jar jarfile="${jars}/jme-awt.jar" basedir="${class}" update="no" compress="false" includes="**/com/jmex/awt/**/*.class" />
-       </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>
-
-       <!-- Creates all the jME jars -->
-       <target name="dist-all" depends="dist-core, dist-terrain, dist-awt, dist-effects, dist-model, dist-sound" 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-awt.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}" />
-       </target>
-
-       <!-- Generats javadoc -->
-       <target name="doc" depends="compile" description="generate the javadoc documentation">
-               <javadoc destdir="${doc}" useExternalFile="yes" 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" />
-            <fileset dir="${release}" includes="jme*.jar"/>
-            <fileset dir="${webstart}" includes="*.jar"/>
-               </delete>
-       </target>
-
-       <target name="rebuild" depends="clean" description="build from clean">
-               <ant />
-       </target>
-
-       <!-- *** jmetest-related build targets -->
-
-       <target name="compile-test" depends="compile" description="generate jme test classes">
-               <javac source="1.5" target="1.5"
-                      srcdir="${src}/jmetest"
-                  destdir="${class}"
-                  classpathref="classpath"
-           />
-               <!-- 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>
-
-       <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="OpenAL32.dll"
-                    update="yes"
-               />
-        <jar jarfile="${webstart}/jinput-windows.jar"
-             basedir="lib"
-             includes="jinput-dxplugin.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}"
-               />
-        <signjar jar="${webstart}/jinput-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"
-               />
-        <jar jarfile="${webstart}/jinput-linux.jar"
-             basedir="lib"
-             includes="libjinput-linux.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}"
-               />
-        <signjar jar="${webstart}/jinput-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="openal.dylib"
-            update="yes"
-            /><!--fix me: shouldn't it be a jnilib?-->
-        <jar jarfile="${webstart}/jinput-mac.jar"
-             basedir="lib"
-             includes="libjinput.jnilib"
-             update="yes"
-                />
+    <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}"
-               />
-        <signjar jar="${webstart}/jinput-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}&#xD;&#xA;"/>
+        <echo file="sdk/nbproject/private/platform-private.properties"
+              message="nbplatform.default.harness.dir=${nbplatform.dir}${file.separator}harness&#xD;&#xA;" 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">
-        <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>
-        <zip zipfile="${release}/src.zip">
-            <zipfileset dir="${src}" prefix="src">
-                <include name="**/*.*"/>
-            </zipfileset>
-        </zip>
-<!--        <mkdir dir="ftp"/>-->
-<!--        <copy todir="ftp">-->
-        <ftp server="${ftphost}" userid="${ftpuser}" password="${ftppassword}" remotedir="nightly" >
-            <fileset dir="${webstart}" >
-                <include name="*.jar"/>
-                <include name="*.jnlp"/>
-            </fileset>
-            <fileset dir="${libs}" >
-                <include name="*.jar"/>
-            </fileset>
-            <fileset dir="${release}" >
-                <include name="*.jar"/>
-                <include name="jME.zip"/>
-                <include name="src.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>