OSDN Git Service

Issue minor: removed fork="true" from <javadoc> target, since it's not supported.
[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                  maxmemory="256m">
117                         <fileset dir="${src}/com">
118                                 <include name="**/*.java" />
119                         </fileset>
120                 </javadoc>
121         </target>
122
123         <!-- Removes all compiled files and documentation, but leaves any created jars -->
124         <target name="clean" description="clean up">
125                 <delete dir="${class}" />
126                 <delete dir="${doc}" />
127                 <delete>
128                         <fileset dir="${src}" includes="**/*.class" />
129             <fileset dir="${release}" includes="jme*.jar"/>
130             <fileset dir="${webstart}" includes="*.jar"/>
131                 </delete>
132         </target>
133
134         <target name="rebuild" depends="clean" description="build from clean">
135                 <ant />
136         </target>
137
138         <!-- *** jmetest-related build targets -->
139
140         <target name="compile-test" depends="compile" description="generate jme test classes">
141                 <javac source="1.5" target="1.5"
142                        srcdir="${src}/jmetest"
143                    destdir="${class}"
144                    classpathref="classpath"
145                fork="true"
146                memoryMaximumSize="256m"
147             />
148                 <!-- copy the resources into the build directory -->
149                 <copy todir="${class}/jmetest/data">
150                         <fileset dir="${src}/jmetest/data"/>
151                 </copy>
152         </target>
153
154         <target name="dist-test" depends="compile-test" description="generate jme test class and data jars" >
155                 <!-- Jar the demo classes -->
156
157         <pathconvert property="jarclasspathlibs" pathsep=" " dirsep="/">
158             <path>
159                 <fileset dir="${libs}">
160                     <include name="*.jar"/>
161                 </fileset>
162             </path>
163             <mapper type="regexp" from=".*(lib.*)" to="\1"/>
164         </pathconvert>
165         <pathconvert property="jarclasspathrelease" pathsep=" " dirsep="/">
166             <path>
167                 <fileset dir="${jars}">
168                     <include name="*.jar"/>
169                     <exclude name="jmetest.jar"/>
170                 </fileset>
171             </path>
172             <mapper type="regexp" from=".*target.(.*)" to="\1"/>
173         </pathconvert>
174         <echo>${jarclasspathlibs} ${jarclasspathrelease}</echo>
175
176                 <jar jarfile="${jars}/jmetest.jar"
177                  basedir="${class}"
178                  excludes="**/jmetest/data/**,**/com/**"
179                  index="yes">
180             <manifest>
181                 <attribute name="Implementation-Title" value="${name}"/>
182                 <attribute name="Implementation-Vendor" value="${vendor}"/>
183                 <attribute name="Version" value="${major}.${minor}"/>
184                 <attribute name="Class-Path" value="${jarclasspathlibs} ${jarclasspathrelease}"/>
185                 <attribute name="Main-Class" value="${mainclass}"/>
186             </manifest>
187             </jar>
188
189                 <!-- Jar the demo data -->
190                 <jar jarfile="${jars}/jmetest-data.jar"
191                  basedir="${class}"
192                  includes="**/jmetest/data/**"
193         />
194         </target>
195
196         <target name="webdist-test" depends="dist-test" description="sign test jars for Webstart distribution" >
197                 <signjar jar="${jars}/jmetest.jar"
198                          alias="jme"
199                          keystore="${webstart}/${keyStore}"
200                          storepass="${storepass}"
201                 />
202                 <signjar jar="${jars}/jmetest-data.jar"
203                          alias="jme"
204                          keystore="${webstart}/${keyStore}"
205                          storepass="${storepass}"
206                 />
207         </target>
208
209         <!-- Jar and sign all the libraries required by jME -->
210         <target name="webdist-nativelibs" description="jar and sign native libraries for Webstart distribution" >
211                 <!--  Jar and sign the Windows libraries -->
212                 <jar jarfile="${webstart}/lwjgl-windows.jar"
213                          basedir="lib"
214                      includes="lwjgl.dll"
215                      update="yes"
216                 />
217                 <jar jarfile="${webstart}/openal-windows.jar"
218                      basedir="lib"
219                      includes="OpenAL32.dll"
220                      update="yes"
221                 />
222         <jar jarfile="${webstart}/jinput-windows.jar"
223              basedir="lib"
224              includes="jinput-dxplugin.dll"
225              update="yes"
226                 />
227                 <signjar jar="${webstart}/lwjgl-windows.jar"
228                          alias="jme"
229                          keystore="${webstart}/${keyStore}"
230                          storepass="${storepass}"
231                 />
232                 <signjar jar="${webstart}/openal-windows.jar"
233                          alias="jme"
234                          keystore="${webstart}/${keyStore}"
235                          storepass="${storepass}"
236                 />
237         <signjar jar="${webstart}/jinput-windows.jar"
238                  alias="jme"
239                  keystore="${webstart}/${keyStore}"
240                  storepass="${storepass}"
241                 />
242
243                 <!-- Jar and sign Linux native libraries -->
244                 <jar jarfile="${webstart}/lwjgl-linux.jar"
245                      basedir="lib"
246                      includes="liblwjgl.so"
247                      update="yes"
248                 />
249                 <jar jarfile="${webstart}/openal-linux.jar"
250                      basedir="lib"
251                      includes="libopenal.so"
252                      update="yes"
253                 />
254         <jar jarfile="${webstart}/jinput-linux.jar"
255              basedir="lib"
256              includes="libjinput-linux.so"
257              update="yes"
258                 />
259                 <signjar jar="${webstart}/lwjgl-linux.jar"
260                          alias="jme"
261                          keystore="${webstart}/${keyStore}"
262                          storepass="${storepass}"
263                 />
264                 <signjar jar="${webstart}/openal-linux.jar"
265                          alias="jme"
266                          keystore="${webstart}/${keyStore}"
267                          storepass="${storepass}"
268                 />
269         <signjar jar="${webstart}/jinput-linux.jar"
270                  alias="jme"
271                  keystore="${webstart}/${keyStore}"
272                  storepass="${storepass}"
273                 />
274
275                 <!-- Jar (eventually) and sign Mac native libraries -->
276         <jar jarfile="${webstart}/lwjgl-mac.jar"
277             basedir="lib"
278             includes="liblwjgl.jnilib"
279             update="yes"
280             />
281         <jar jarfile="${webstart}/openal-mac.jar"
282             basedir="lib"
283             includes="openal.dylib"
284             update="yes"
285             /><!--fix me: shouldn't it be a jnilib?-->
286         <jar jarfile="${webstart}/jinput-mac.jar"
287              basedir="lib"
288              includes="libjinput.jnilib"
289              update="yes"
290                 />
291
292                 <signjar jar="${webstart}/lwjgl-mac.jar"
293                          alias="jme"
294                          keystore="${webstart}/${keyStore}"
295                          storepass="${storepass}"
296                 />
297                 <signjar jar="${webstart}/openal-mac.jar"
298                          alias="jme"
299                          keystore="${webstart}/${keyStore}"
300                          storepass="${storepass}"
301                 />
302         <signjar jar="${webstart}/jinput-mac.jar"
303                  alias="jme"
304                  keystore="${webstart}/${keyStore}"
305                  storepass="${storepass}"
306                 />
307
308                 <!-- Sign the lwjgl jar -->
309                 <signjar jar="${seg}/lib/lwjgl.jar"
310                          alias="jme"
311                          keystore="${webstart}/${keyStore}"
312                          storepass="${storepass}"
313                 />
314
315                 <!-- Sign the lwjgl fmod3 jar -->
316                 <signjar jar="${seg}/lib/lwjgl_fmod3.jar"
317                          alias="jme"
318                          keystore="${webstart}/${keyStore}"
319                          storepass="${storepass}"
320                 />
321         </target>
322
323     <target name="nightly" depends="webdist-all, webdist-nativelibs, webdist-test">
324         <echo>${libs}/*.jar</echo>
325         <zip zipfile="${release}/jME.zip">
326             <zipfileset dir="${libs}" prefix="lib">
327                 <include name="*.jar"/>
328                 <include name="*.dll"/>
329                 <include name="*.so"/>
330                 <include name="*.*lib"/>
331             </zipfileset>
332             <fileset dir="${release}" >
333                 <include name="*.jar"/>
334             </fileset>
335         </zip>
336         <zip zipfile="${release}/src.zip">
337             <zipfileset dir="${src}" prefix="src">
338                 <include name="**/*.*"/>
339             </zipfileset>
340         </zip>
341 <!--        <mkdir dir="ftp"/>-->
342 <!--        <copy todir="ftp">-->
343         <ftp server="${ftphost}" userid="${ftpuser}" password="${ftppassword}" remotedir="nightly" >
344             <fileset dir="${webstart}" >
345                 <include name="*.jar"/>
346                 <include name="*.jnlp"/>
347             </fileset>
348             <fileset dir="${libs}" >
349                 <include name="*.jar"/>
350             </fileset>
351             <fileset dir="${release}" >
352                 <include name="*.jar"/>
353                 <include name="jME.zip"/>
354                 <include name="src.zip"/>
355             </fileset>
356         </ftp>
357 <!--        </copy>-->
358     </target>
359
360 </project>