OSDN Git Service

target 1.4
[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" target="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}" useExternalFile="yes" 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             <fileset dir="${release}" includes="jme*.jar"/>
94             <fileset dir="${webstart}" includes="*.jar"/>
95                 </delete>
96         </target>
97
98         <target name="rebuild" depends="clean" description="build from clean">
99                 <ant />
100         </target>
101
102         <!-- *** jmetest-related build targets -->
103
104         <target name="compile-test" depends="init" description="generate jme test classes">
105                 <javac source="1.4" target="1.4"
106                        srcdir="${src}/jmetest"
107                    destdir="${class}"
108                    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"
109             />
110                 <!-- copy the resources into the build directory -->
111                 <copy todir="${class}/jmetest/data">
112                         <fileset dir="${src}/jmetest/data"/>
113                 </copy>
114         </target>
115
116         <target name="dist-test" depends="compile-test" description="generate jme test class and data jars" >
117                 <!-- Jar the demo classes -->
118
119         <pathconvert property="jarclasspathlibs" pathsep=" " dirsep="/">
120             <path>
121                 <fileset dir="${libs}">
122                     <include name="*.jar"/>
123                 </fileset>
124             </path>
125             <mapper type="regexp" from=".*(lib.*)" to="\1"/>
126         </pathconvert>
127         <pathconvert property="jarclasspathrelease" pathsep=" " dirsep="/">
128             <path>
129                 <fileset dir="${jars}">
130                     <include name="*.jar"/>
131                     <exclude name="jmetest.jar"/>
132                 </fileset>
133             </path>
134             <mapper type="regexp" from=".*target.(.*)" to="\1"/>
135         </pathconvert>
136         <echo>${jarclasspathlibs} ${jarclasspathrelease}</echo>
137
138                 <jar jarfile="${jars}/jmetest.jar"
139                  basedir="${class}"
140                  excludes="**/jmetest/data/**,**/com/**"
141                  index="yes">
142             <manifest>
143                 <attribute name="Implementation-Title" value="${name}"/>
144                 <attribute name="Implementation-Vendor" value="${vendor}"/>
145                 <attribute name="Version" value="${major}.${minor}"/>
146                 <attribute name="Class-Path" value="${jarclasspathlibs} ${jarclasspathrelease}"/>
147                 <attribute name="Main-Class" value="${mainclass}"/>
148             </manifest>
149             </jar>
150
151                 <!-- Jar the demo data -->
152                 <jar jarfile="${jars}/jmetest-data.jar"
153                  basedir="${class}"
154                  includes="**/jmetest/data/**"
155         />
156         </target>
157
158         <target name="webdist-test" depends="dist-test" description="sign test jars for Webstart distribution" >
159                 <signjar jar="${jars}/jmetest.jar"
160                          alias="jme"
161                          keystore="${webstart}/${keyStore}"
162                          storepass="${storepass}"
163                 />
164                 <signjar jar="${jars}/jmetest-data.jar"
165                          alias="jme"
166                          keystore="${webstart}/${keyStore}"
167                          storepass="${storepass}"
168                 />
169         </target>
170
171         <!-- Jar and sign all the libraries required by jME -->
172         <target name="webdist-nativelibs" description="jar and sign native libraries for Webstart distribution" >
173                 <!--  Jar and sign the Windows libraries -->
174                 <jar jarfile="${webstart}/lwjgl-windows.jar"
175                          basedir="lib"
176                      includes="lwjgl.dll"
177                      update="yes"
178                 />
179                 <jar jarfile="${webstart}/openal-windows.jar"
180                      basedir="lib"
181                      includes="lwjglaudio.dll"
182                      update="yes"
183                 />
184                 <signjar jar="${webstart}/lwjgl-windows.jar"
185                          alias="jme"
186                          keystore="${webstart}/${keyStore}"
187                          storepass="${storepass}"
188                 />
189                 <signjar jar="${webstart}/openal-windows.jar"
190                          alias="jme"
191                          keystore="${webstart}/${keyStore}"
192                          storepass="${storepass}"
193                 />
194
195                 <!-- Jar and sign Linux native libraries -->
196                 <jar jarfile="${webstart}/lwjgl-linux.jar"
197                      basedir="lib"
198                      includes="liblwjgl.so"
199                      update="yes"
200                 />
201                 <jar jarfile="${webstart}/openal-linux.jar"
202                      basedir="lib"
203                      includes="libopenal.so"
204                      update="yes"
205                 />
206                 <signjar jar="${webstart}/lwjgl-linux.jar"
207                          alias="jme"
208                          keystore="${webstart}/${keyStore}"
209                          storepass="${storepass}"
210                 />
211                 <signjar jar="${webstart}/openal-linux.jar"
212                          alias="jme"
213                          keystore="${webstart}/${keyStore}"
214                          storepass="${storepass}"
215                 />
216
217                 <!-- Jar (eventually) and sign Mac native libraries -->
218         <jar jarfile="${webstart}/lwjgl-mac.jar"
219             basedir="lib"
220             includes="liblwjgl.jnilib"
221             update="yes"
222             />
223         <jar jarfile="${webstart}/openal-mac.jar"
224             basedir="lib"
225             includes="openal.dylib"
226             update="yes"
227             /><!--fix me: shouldn't it be a jnilib?-->
228
229                 <signjar jar="${webstart}/lwjgl-mac.jar"
230                          alias="jme"
231                          keystore="${webstart}/${keyStore}"
232                          storepass="${storepass}"
233                 />
234                 <signjar jar="${webstart}/openal-mac.jar"
235                          alias="jme"
236                          keystore="${webstart}/${keyStore}"
237                          storepass="${storepass}"
238                 />
239
240                 <!-- Sign the lwjgl jar -->
241                 <signjar jar="${seg}/lib/lwjgl.jar"
242                          alias="jme"
243                          keystore="${webstart}/${keyStore}"
244                          storepass="${storepass}"
245                 />
246
247                 <!-- Sign the lwjgl fmod3 jar -->
248                 <signjar jar="${seg}/lib/lwjgl_fmod3.jar"
249                          alias="jme"
250                          keystore="${webstart}/${keyStore}"
251                          storepass="${storepass}"
252                 />
253         </target>
254
255     <target name="nightly" depends="webdist-all, webdist-nativelibs, webdist-test">
256 <!--    <target name="nightly">-->
257         <echo>${libs}/*.jar</echo>
258         <zip zipfile="${release}/jME.zip">
259             <zipfileset dir="${libs}" prefix="lib">
260                 <include name="*.jar"/>
261                 <include name="*.dll"/>
262                 <include name="*.so"/>
263                 <include name="*.*lib"/>
264             </zipfileset>
265             <fileset dir="${release}" >
266                 <include name="*.jar"/>
267             </fileset>
268         </zip>
269 <!--        <mkdir dir="ftp"/>-->
270 <!--        <copy todir="ftp">-->
271         <ftp server="ftp.jmonkeyengine.com" userid="${ftpuser}" password="${ftppassword}" remotedir="nightly" >
272             <fileset dir="${webstart}" >
273                 <include name="*.jar"/>
274                 <include name="*.jnlp"/>
275             </fileset>
276             <fileset dir="${libs}" >
277                 <include name="*.jar"/>
278             </fileset>
279             <fileset dir="${release}" >
280                 <include name="*.jar"/>
281                 <include name="jME.zip"/>
282             </fileset>
283         </ftp>
284 <!--        </copy>-->
285     </target>
286
287 </project>