OSDN Git Service

Added jme-audio.jar(jmex.audio) creation to build.xml
[mikumikustudio/MikuMikuStudio.git] / build.xml
1
2 <project name="jME" default="compile" basedir=".">
3         <description>
4         Ant Build File for the jME API.
5     </description>
6
7     <import file="build-import.xml"/>
8
9         <property name="class" location="${build}" />
10         <property name="jars" location="${release}" />
11         <property name="webstart" location="${seg}/jnlp" />
12
13     <property file="build.properties"/>
14 <!--    defaults for build.properties:-->
15     <property name="keyStore" value="jmeKeyStore"/>
16     <property name="storepass" value="..."/>
17     <property name="ftpuser" value="..."/>
18     <property name="ftppassword" value="..."/>
19     <property name="ftphost" value="ftp.jmonkeyengine.com"/>
20     <!--    end of defaults -->
21
22     <path id="classpath">
23         <fileset dir="${libs}">
24             <include name="*.jar"/>
25         </fileset>
26         <pathelement path="${class}"/>
27     </path>
28
29         <target name="init">
30         <echo message="${keyStore}"/>
31                 <mkdir dir="${src}" />
32                 <mkdir dir="${class}" />
33                 <mkdir dir="${data}" />
34                 <mkdir dir="${doc}" />
35         </target>
36
37         <!-- Compiles all the jME classes, including com.jmex.* -->
38         <target name="compile" depends="init" description="generate jme classes">
39                 <mkdir dir="${class}" />
40                 <mkdir dir="${class}/com" />
41                 <copy todir="${class}/com">
42                         <fileset dir="${src}/com">
43                                 <exclude name="**/*.java" />
44                         </fileset>
45                 </copy>
46                 <javac source="1.5" target="1.5"
47                        srcdir="${src}/com"
48                        destdir="${class}"
49                        classpathref="classpath"
50                            listfiles="no"
51                fork="true"
52                memoryMaximumSize="256m"
53         />
54         </target>
55
56     <target name="run-testchooser" depends="compile-test" description="Runs the TestChooser">
57         <java classname="jmetest.TestChooser"
58               fork="true"
59               classpathref="classpath">
60             <jvmarg value="-Djava.library.path=${libs}"/>
61         </java>
62     </target>
63
64         <!-- Jar files for different parts of the jME API -->
65
66         <target name="dist-core" depends="compile" description="generate jme jar file">
67                 <jar jarfile="${jars}/jme.jar" basedir="${class}" update="no" compress="true" includes="**/com/jme/**/*.class, **/com/jme/**/*.tga, **/com/jme/**/*.png, **/com/jme/**/*.glf" />
68         </target>
69     <target name="dist-audio" depends="compile" description="generate jme jar file (audio)">
70         <jar jarfile="${jars}/jme-audio.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/audio/**/*.class" />
71     </target>
72         <target name="dist-awt" depends="compile" description="generate jme jar file (awt)">
73                 <jar jarfile="${jars}/jme-awt.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/awt/**/*.class" />
74         </target>
75         <target name="dist-editors" depends="compile" description="generate jme jar file (editors)">
76                 <jar jarfile="${jars}/jme-editors.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/editors/**/*.class" />
77         </target>
78         <target name="dist-effects" depends="compile" description="generate jme jar file (effects)">
79                 <jar jarfile="${jars}/jme-effects.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/effects/**/*.class, **/com/jmex/effects/**/data/*.*" />
80         </target>
81         <target name="dist-font" depends="compile" description="generate jme jar file (font)">
82                 <jar jarfile="${jars}/jme-font.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/font2d/**/*.class,**/com/jmex/font3d/**/*.class" />
83         </target>
84         <target name="dist-gamestates" depends="compile" description="generate jme jar file (gamestates)">
85                 <jar jarfile="${jars}/jme-gamestates.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/game/**/*.class" />
86         </target>
87         <target name="dist-model" depends="compile" description="generate jme jar file (model)">
88                 <jar jarfile="${jars}/jme-model.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/model/**/*.class" excludes="**/com/jmex/model/collada/**"/>
89         </target>
90         <target name="dist-collada" depends="compile" description="generate jme jar file (collada)">
91                 <jar jarfile="${jars}/jme-collada.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/model/collada/**/*.class"/>
92         </target>
93         <target name="dist-scene" depends="compile" description="generate jme jar file (scene)">
94                 <jar jarfile="${jars}/jme-scene.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/scene/**/*.class" />
95         </target>
96         <target name="dist-sound" depends="compile" description="generate jme jar file (sound)">
97                 <jar jarfile="${jars}/jme-sound.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/sound/**/*.class" />
98         </target>
99         <target name="dist-terrain" depends="compile" description="generate jme jar file (terrain)">
100                 <jar jarfile="${jars}/jme-terrain.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/terrain/**/*.class" />
101         </target>
102
103         <!-- Creates all the jME jars -->
104         <target name="dist-all" depends="dist-core, dist-terrain, dist-audio, dist-awt, dist-effects, dist-model, dist-collada, dist-sound, dist-editors, dist-font, dist-gamestates, dist-scene" description="Generate all jar files" />
105
106         <target name="webdist-all" depends="dist-all" description="sign JARs for JNLP distribution">
107                 <signjar jar="${jars}/jme.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
108         <signjar jar="${jars}/jme-awt.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
109         <signjar jar="${jars}/jme-audio.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
110                 <signjar jar="${jars}/jme-editors.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
111                 <signjar jar="${jars}/jme-effects.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
112                 <signjar jar="${jars}/jme-font.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
113                 <signjar jar="${jars}/jme-gamestates.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
114                 <signjar jar="${jars}/jme-model.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
115                 <signjar jar="${jars}/jme-collada.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
116                 <signjar jar="${jars}/jme-scene.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
117                 <signjar jar="${jars}/jme-sound.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
118                 <signjar jar="${jars}/jme-terrain.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
119         </target>
120
121         <!-- Generats javadoc -->
122         <target name="doc" depends="compile" description="generate the javadoc documentation">
123                 <javadoc destdir="${doc}" useExternalFile="yes" author="true" version="true" use="true"
124                  package="yes" windowtitle="jME API"
125                  maxmemory="256m">
126                         <fileset dir="${src}/com">
127                 <include name="**/*.java" />
128                 <exclude name="**/jmex/model/collada/schema/**" />
129                 <exclude name="**/jmex/model/collada/types/**" />
130                 <exclude name="**/jmex/model/collada/xml/**" />
131                         </fileset>
132                 </javadoc>
133         </target>
134
135         <!-- Removes all compiled files and documentation, but leaves any created jars -->
136         <target name="clean" description="clean up">
137                 <delete dir="${class}" />
138                 <delete dir="${doc}" />
139                 <delete>
140                         <fileset dir="${src}" includes="**/*.class" />
141             <fileset dir="${release}" includes="jme*.jar"/>
142             <fileset dir="${webstart}" includes="*.jar"/>
143                 </delete>
144         </target>
145
146         <target name="rebuild" depends="clean" description="build from clean">
147                 <ant />
148         </target>
149
150         <!-- *** jmetest-related build targets -->
151
152         <target name="compile-test" depends="compile" description="generate jme test classes">
153                 <javac source="1.5" target="1.5"
154                        srcdir="${src}/jmetest"
155                    destdir="${class}"
156                    classpathref="classpath"
157                fork="true"
158                memoryMaximumSize="256m"
159             />
160                 <!-- copy the resources into the build directory -->
161                 <copy todir="${class}/jmetest">
162             <fileset dir="${src}/jmetest">
163                 <exclude name="**/*.java" />
164             </fileset>
165                 </copy>
166         </target>
167
168         <target name="dist-test" depends="compile-test" description="generate jme test class and data jars" >
169                 <!-- Jar the demo classes -->
170
171         <pathconvert property="jarclasspathlibs" pathsep=" " dirsep="/">
172             <path>
173                 <fileset dir="${libs}">
174                     <include name="*.jar"/>
175                 </fileset>
176             </path>
177             <mapper type="regexp" from=".*(lib.*)" to="\1"/>
178         </pathconvert>
179         <pathconvert property="jarclasspathrelease" pathsep=" " dirsep="/">
180             <path>
181                 <fileset dir="${jars}">
182                     <include name="*.jar"/>
183                     <exclude name="jmetest.jar"/>
184                 </fileset>
185             </path>
186             <mapper type="regexp" from=".*target.(.*)" to="\1"/>
187         </pathconvert>
188         <echo>${jarclasspathlibs} ${jarclasspathrelease}</echo>
189
190                 <jar jarfile="${jars}/jmetest.jar"
191                  basedir="${class}"
192                  excludes="**/jmetest/**/data/**,**/com/**"
193                  index="yes">
194             <manifest>
195                 <attribute name="Implementation-Title" value="${name}"/>
196                 <attribute name="Implementation-Vendor" value="${vendor}"/>
197                 <attribute name="Version" value="${major}.${minor}"/>
198                 <attribute name="Class-Path" value="${jarclasspathlibs} ${jarclasspathrelease}"/>
199                 <attribute name="Main-Class" value="${mainclass}"/>
200             </manifest>
201             </jar>
202
203                 <!-- Jar the demo data -->
204                 <jar jarfile="${jars}/jmetest-data.jar"
205                  basedir="${class}"
206                  includes="**/jmetest/**/data/**"
207         />
208         </target>
209
210         <target name="webdist-test" depends="dist-test" description="sign test jars for Webstart distribution" >
211                 <signjar jar="${jars}/jmetest.jar"
212                          alias="jme"
213                          keystore="${webstart}/${keyStore}"
214                          storepass="${storepass}"
215                 />
216                 <signjar jar="${jars}/jmetest-data.jar"
217                          alias="jme"
218                          keystore="${webstart}/${keyStore}"
219                          storepass="${storepass}"
220                 />
221         </target>
222
223         <!-- Jar and sign all the libraries required by jME -->
224         <target name="webdist-nativelibs" description="jar and sign native libraries for Webstart distribution" >
225                 <!--  Jar and sign the Windows libraries -->
226                 <jar jarfile="${webstart}/lwjgl-windows.jar"
227                          basedir="lib"
228                      includes="lwjgl.dll"
229                      update="yes"
230                 />
231                 <jar jarfile="${webstart}/openal-windows.jar"
232                      basedir="lib"
233                      includes="OpenAL32.dll"
234                      update="yes"
235                 />
236         <jar jarfile="${webstart}/jinput-windows.jar"
237              basedir="lib"
238              includes="jinput-dxplugin.dll"
239              update="yes"
240                 />
241                 <signjar jar="${webstart}/lwjgl-windows.jar"
242                          alias="jme"
243                          keystore="${webstart}/${keyStore}"
244                          storepass="${storepass}"
245                 />
246                 <signjar jar="${webstart}/openal-windows.jar"
247                          alias="jme"
248                          keystore="${webstart}/${keyStore}"
249                          storepass="${storepass}"
250                 />
251         <signjar jar="${webstart}/jinput-windows.jar"
252                  alias="jme"
253                  keystore="${webstart}/${keyStore}"
254                  storepass="${storepass}"
255                 />
256
257                 <!-- Jar and sign Linux native libraries -->
258                 <jar jarfile="${webstart}/lwjgl-linux.jar"
259                      basedir="lib"
260                      includes="liblwjgl.so"
261                      update="yes"
262                 />
263                 <jar jarfile="${webstart}/openal-linux.jar"
264                      basedir="lib"
265                      includes="libopenal.so"
266                      update="yes"
267                 />
268         <jar jarfile="${webstart}/jinput-linux.jar"
269              basedir="lib"
270              includes="libjinput-linux.so"
271              update="yes"
272                 />
273                 <signjar jar="${webstart}/lwjgl-linux.jar"
274                          alias="jme"
275                          keystore="${webstart}/${keyStore}"
276                          storepass="${storepass}"
277                 />
278                 <signjar jar="${webstart}/openal-linux.jar"
279                          alias="jme"
280                          keystore="${webstart}/${keyStore}"
281                          storepass="${storepass}"
282                 />
283         <signjar jar="${webstart}/jinput-linux.jar"
284                  alias="jme"
285                  keystore="${webstart}/${keyStore}"
286                  storepass="${storepass}"
287                 />
288
289                 <!-- Jar (eventually) and sign Mac native libraries -->
290         <jar jarfile="${webstart}/lwjgl-mac.jar"
291             basedir="lib"
292             includes="liblwjgl.jnilib"
293             update="yes"
294             />
295         <jar jarfile="${webstart}/openal-mac.jar"
296             basedir="lib"
297             includes="openal.dylib"
298             update="yes"
299             /><!--fix me: shouldn't it be a jnilib?-->
300         <jar jarfile="${webstart}/jinput-mac.jar"
301              basedir="lib"
302              includes="libjinput.jnilib"
303              update="yes"
304                 />
305
306                 <signjar jar="${webstart}/lwjgl-mac.jar"
307                          alias="jme"
308                          keystore="${webstart}/${keyStore}"
309                          storepass="${storepass}"
310                 />
311                 <signjar jar="${webstart}/openal-mac.jar"
312                          alias="jme"
313                          keystore="${webstart}/${keyStore}"
314                          storepass="${storepass}"
315                 />
316         <signjar jar="${webstart}/jinput-mac.jar"
317                  alias="jme"
318                  keystore="${webstart}/${keyStore}"
319                  storepass="${storepass}"
320                 />
321
322                 <!-- Sign the lwjgl jar -->
323                 <signjar jar="${seg}/lib/lwjgl.jar"
324                          alias="jme"
325                          keystore="${webstart}/${keyStore}"
326                          storepass="${storepass}"
327                 />
328
329                 <!-- Sign the lwjgl fmod3 jar -->
330                 <signjar jar="${seg}/lib/lwjgl_fmod3.jar"
331                          alias="jme"
332                          keystore="${webstart}/${keyStore}"
333                          storepass="${storepass}"
334                 />
335         </target>
336
337     <target name="nightly" depends="webdist-all, webdist-nativelibs, webdist-test">
338         <echo>${libs}/*.jar</echo>
339         <zip zipfile="${release}/jME.zip">
340             <zipfileset dir="${libs}" prefix="lib">
341                 <include name="*.jar"/>
342                 <include name="*.dll"/>
343                 <include name="*.so"/>
344                 <include name="*.*lib"/>
345             </zipfileset>
346             <fileset dir="${release}" >
347                 <include name="*.jar"/>
348             </fileset>
349         </zip>
350         <zip zipfile="${release}/src.zip">
351             <zipfileset dir="${src}" prefix="src">
352                 <include name="**/*.*"/>
353             </zipfileset>
354         </zip>
355 <!--        <mkdir dir="ftp"/>-->
356 <!--        <copy todir="ftp">-->
357         <ftp server="${ftphost}" userid="${ftpuser}" password="${ftppassword}" remotedir="nightly" >
358             <fileset dir="${webstart}" >
359                 <include name="*.jar"/>
360                 <include name="*.jnlp"/>
361             </fileset>
362             <fileset dir="${libs}" >
363                 <include name="*.jar"/>
364             </fileset>
365             <fileset dir="${release}" >
366                 <include name="*.jar"/>
367                 <include name="jME.zip"/>
368                 <include name="src.zip"/>
369             </fileset>
370         </ftp>
371 <!--        </copy>-->
372     </target>
373
374 </project>