OSDN Git Service

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