OSDN Git Service

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