OSDN Git Service

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