OSDN Git Service

Updated so at least the build will work. Packaging probably still does not.
[mikumikustudio/MikuMikuStudio.git] / build.xml
1
2 <project name="jME" default="compile" basedir=".">
3         <description>
4         Ant Build File for the jME API.
5     </description>
6
7         <import file="build-import.xml" />
8
9         <property name="class" location="${build}" />
10         <property name="jars" location="${release}" />
11         <property name="webstart" location="${seg}/jnlp" />
12
13         <property file="build.properties" />
14         <!--    defaults for build.properties:-->
15         <property name="keyStore" value="jmeKeyStore" />
16         <property name="storepass" value="..." />
17         <property name="ftpuser" value="..." />
18         <property name="ftppassword" value="..." />
19         <property name="ftphost" value="ftp.jmonkeyengine.com" />
20         <property name="javac.debug" value="false" />
21       <!-- I recommend defaulting javac.debug to true, but that would
22            require you to set it false when building public distros.
23            Having line numbers in debug output is useful for the 99.9%
24            of non-public builds, esp. for custom-builders who have
25            runtime problems.   - blaine  -->
26         <!--    end of defaults -->
27
28         <path id="classpath">
29                 <fileset dir="${libs}">
30                         <include name="**/*.jar" />
31                 </fileset>
32                 <pathelement path="${class}" />
33         </path>
34
35         <target name="init">
36                 <echo message="${keyStore}" />
37                 <mkdir dir="${src}" />
38                 <mkdir dir="${class}" />
39                 <mkdir dir="${data}" />
40                 <mkdir dir="${doc}" />
41         </target>
42
43         <!-- Compiles all the jME classes, including com.jmex.* -->
44         <target name="compile" depends="init" description="generate jme classes">
45                 <mkdir dir="${class}" />
46                 <mkdir dir="${class}/com" />
47                 <copy todir="${class}/com">
48                         <fileset dir="${src}/com">
49                                 <exclude name="**/*.java" />
50                         </fileset>
51                 </copy>
52                 <javac source="1.5" target="1.5" srcdir="${src}/com" destdir="${class}"
53                         classpathref="classpath" listfiles="no" fork="true"
54                         memoryMaximumSize="256m" debug="${javac.debug}"/>
55         </target>
56
57         <target name="run-testchooser" depends="compile-test" description="Runs the TestChooser">
58                 <java classname="jmetest.TestChooser" fork="true" 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="true" includes="**/com/jme/**/*.class, **/com/jme/**/*.tga, **/com/jme/**/*.png, **/com/jme/**/*.glf" />
67         </target>
68         <target name="dist-audio" depends="compile" description="generate jme jar file (audio)">
69                 <jar jarfile="${jars}/jme-audio.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/audio/**/*.class" />
70         </target>
71         <target name="dist-awt" depends="compile" description="generate jme jar file (awt)">
72                 <jar jarfile="${jars}/jme-awt.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/awt/**/*.class" />
73         </target>
74         <target name="dist-editors" depends="compile" description="generate jme jar file (editors)">
75                 <jar jarfile="${jars}/jme-editors.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/editors/**/*.class" />
76         </target>
77         <target name="dist-effects" depends="compile" description="generate jme jar file (effects)">
78                 <jar jarfile="${jars}/jme-effects.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/effects/**/*.class, **/com/jmex/effects/**/data/*.*" />
79         </target>
80         <target name="dist-font" depends="compile" description="generate jme jar file (font)">
81                 <jar jarfile="${jars}/jme-font.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/font2d/**/*.class,**/com/jmex/font3d/**/*.class" />
82         </target>
83         <target name="dist-gamestates" depends="compile" description="generate jme jar file (gamestates)">
84                 <jar jarfile="${jars}/jme-gamestates.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/game/**/*.class" />
85         </target>
86         <target name="dist-model" depends="compile" description="generate jme jar file (model)">
87                 <jar jarfile="${jars}/jme-model.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/model/**/*.class" excludes="**/com/jmex/model/collada/**" />
88         </target>
89         <target name="dist-collada" depends="compile" description="generate jme jar file (collada)">
90                 <jar jarfile="${jars}/jme-collada.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/model/collada/**/*.class" />
91         </target>
92         <target name="dist-scene" depends="compile" description="generate jme jar file (scene)">
93                 <jar jarfile="${jars}/jme-scene.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/scene/**/*.class" />
94         </target>
95         <target name="dist-terrain" depends="compile" description="generate jme jar file (terrain)">
96                 <jar jarfile="${jars}/jme-terrain.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/terrain/**/*.class" />
97         </target>
98         <target name="dist-xml" depends="compile" description="generate jme jar file (xml)">
99                 <jar jarfile="${jars}/jme-xml.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/xml/**/*.class" />
100         </target>
101         <!-- Creates all the jME jars -->
102         <target name="dist-all" depends="dist-core, dist-terrain, dist-audio, dist-awt, dist-effects, dist-model, dist-collada, dist-editors, dist-font, dist-gamestates, dist-scene, dist-xml" description="Generate all jar files" />
103
104         <target name="webdist-all" depends="dist-all" description="sign JARs for JNLP distribution">
105                 <signjar jar="${jars}/jme.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
106                 <signjar jar="${jars}/jme-awt.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
107                 <signjar jar="${jars}/jme-audio.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
108                 <signjar jar="${jars}/jme-editors.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
109                 <signjar jar="${jars}/jme-effects.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
110                 <signjar jar="${jars}/jme-font.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
111                 <signjar jar="${jars}/jme-gamestates.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
112                 <signjar jar="${jars}/jme-model.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
113                 <signjar jar="${jars}/jme-collada.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
114                 <signjar jar="${jars}/jme-scene.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
115                 <signjar jar="${jars}/jme-terrain.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
116                 <signjar jar="${jars}/jme-xml.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
117         </target>
118
119         <!-- Generats javadoc -->
120         <target name="doc" depends="compile" description="generate the javadoc documentation">
121                 <javadoc destdir="${doc}" useExternalFile="yes" author="true" version="true" use="true" package="yes" windowtitle="jME API" maxmemory="256m">
122                         <fileset dir="${src}/com">
123                                 <include name="**/*.java" />
124                                 <exclude name="**/jmex/model/collada/schema/**" />
125                         </fileset>
126                 </javadoc>
127         </target>
128
129         <!-- Removes all compiled files and documentation, but leaves any created jars -->
130         <target name="clean" description="clean up">
131                 <delete dir="${class}" />
132                 <delete dir="${doc}" />
133                 <delete>
134                         <fileset dir="${src}" includes="**/*.class" />
135                         <fileset dir="${release}" includes="jme*.jar" />
136                         <fileset dir="${webstart}" includes="*.jar" />
137                 </delete>
138         </target>
139
140         <target name="rebuild" depends="clean" description="build from clean">
141                 <ant />
142         </target>
143
144         <!-- *** jmetest-related build targets -->
145
146         <target name="compile-test" depends="compile" description="generate jme test classes">
147                 <javac source="1.5" target="1.5" srcdir="${src}/jmetest" destdir="${class}"
148                         classpathref="classpath" fork="true" memoryMaximumSize="256m"
149                         debug="${javac.debug}"/>
150                 <!-- copy the resources into the build directory -->
151                 <copy todir="${class}/jmetest">
152                         <fileset dir="${src}/jmetest">
153                                 <exclude name="**/*.java" />
154                         </fileset>
155                 </copy>
156         </target>
157
158         <target name="dist-test" depends="compile-test" description="generate jme test class and data jars">
159                 <!-- Jar the demo classes -->
160
161                 <pathconvert property="jarclasspathlibs" pathsep=" " dirsep="/">
162                         <path>
163                                 <fileset dir="${libs}">
164                                         <include name="*.jar" />
165                                 </fileset>
166                         </path>
167                         <mapper type="regexp" from=".*(lib.*)" to="\1" />
168                 </pathconvert>
169                 <pathconvert property="jarclasspathrelease" pathsep=" " dirsep="/">
170                         <path>
171                                 <fileset dir="${jars}">
172                                         <include name="*.jar" />
173                                         <exclude name="jmetest.jar" />
174                                 </fileset>
175                         </path>
176                         <mapper type="regexp" from=".*target.(.*)" to="\1" />
177                 </pathconvert>
178                 <echo>${jarclasspathlibs} ${jarclasspathrelease}</echo>
179
180                 <jar jarfile="${jars}/jmetest.jar" basedir="${class}" compress="true" excludes="**/jmetest/**/data/**,**/com/**" 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-cursor.jar" basedir="${class}" compress="true" includes="**/jmetest/data/cursor/**" />
192                 <jar jarfile="${jars}/jmetest-data-images.jar" basedir="${class}" compress="true" includes="**/jmetest/data/images/**" />
193                 <jar jarfile="${jars}/jmetest-data-model.jar" basedir="${class}" compress="true" includes="**/jmetest/data/model/**" />
194                 <jar jarfile="${jars}/jmetest-data-skybox1.jar" basedir="${class}" compress="true" includes="**/jmetest/data/skybox1/**" />
195                 <jar jarfile="${jars}/jmetest-data-sound.jar" basedir="${class}" compress="true" includes="**/jmetest/data/sound/**" />
196                 <jar jarfile="${jars}/jmetest-data-texture.jar" basedir="${class}" compress="true" includes="**/jmetest/data/texture/**" />
197         </target>
198
199         <target name="webdist-test" depends="dist-test" description="sign test jars for Webstart distribution">
200                 <signjar jar="${jars}/jmetest.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
201                 <signjar jar="${jars}/jmetest-data-cursor.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
202                 <signjar jar="${jars}/jmetest-data-images.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
203                 <signjar jar="${jars}/jmetest-data-model.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
204                 <signjar jar="${jars}/jmetest-data-skybox1.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
205                 <signjar jar="${jars}/jmetest-data-sound.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
206                 <signjar jar="${jars}/jmetest-data-texture.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
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" basedir="lib" includes="lwjgl.dll" update="yes" />
213                 <jar jarfile="${webstart}/openal-windows.jar" basedir="lib" includes="OpenAL32.dll" update="yes" />
214                 <jar jarfile="${webstart}/jinput-windows.jar" basedir="lib" includes="jinput-dxplugin.dll" update="yes" />
215                 <signjar jar="${webstart}/lwjgl-windows.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
216                 <signjar jar="${webstart}/openal-windows.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
217                 <signjar jar="${webstart}/jinput-windows.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
218
219                 <!-- Jar and sign Linux native libraries -->
220                 <jar jarfile="${webstart}/lwjgl-linux.jar" basedir="lib" includes="liblwjgl.so" update="yes" />
221                 <jar jarfile="${webstart}/openal-linux.jar" basedir="lib" includes="libopenal.so" update="yes" />
222                 <jar jarfile="${webstart}/jinput-linux.jar" basedir="lib" includes="libjinput-linux.so" update="yes" />
223                 <signjar jar="${webstart}/lwjgl-linux.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
224                 <signjar jar="${webstart}/openal-linux.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
225                 <signjar jar="${webstart}/jinput-linux.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
226
227                 <!-- Jar (eventually) and sign Mac native libraries -->
228                 <jar jarfile="${webstart}/lwjgl-mac.jar" basedir="lib" includes="liblwjgl.jnilib" update="yes" />
229                 <jar jarfile="${webstart}/openal-mac.jar" basedir="lib" includes="openal.dylib" update="yes" />
230                 <!--fix me: shouldn't it be a jnilib?-->
231                 <jar jarfile="${webstart}/jinput-mac.jar" basedir="lib" includes="libjinput.jnilib" update="yes" />
232
233                 <signjar jar="${webstart}/lwjgl-mac.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
234                 <signjar jar="${webstart}/openal-mac.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
235                 <signjar jar="${webstart}/jinput-mac.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
236
237                 <!-- Sign the lwjgl jar -->
238                 <signjar jar="${seg}/lib/lwjgl.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
239         </target>
240
241         <target name="nightly" depends="webdist-all, webdist-nativelibs, webdist-test">
242                 <echo>${libs}/*.jar</echo>
243                 <zip zipfile="${release}/jME.zip">
244                         <zipfileset dir="${libs}" prefix="lib">
245                                 <include name="*.jar" />
246                                 <include name="*.dll" />
247                                 <include name="*.so" />
248                                 <include name="*.*lib" />
249                         </zipfileset>
250                         <fileset dir="${release}">
251                                 <include name="*.jar" />
252                         </fileset>
253                 </zip>
254                 <zip zipfile="${release}/src.zip">
255                         <zipfileset dir="${src}" prefix="src">
256                                 <include name="**/*.*" />
257                         </zipfileset>
258                 </zip>
259                 <!--        <mkdir dir="ftp"/>-->
260                 <!--        <copy todir="ftp">-->
261                 <ftp server="${ftphost}" userid="${ftpuser}" password="${ftppassword}" remotedir="nightly">
262                         <fileset dir="${webstart}">
263                                 <include name="*.jar" />
264                                 <include name="*.jnlp" />
265                         </fileset>
266                         <fileset dir="${libs}">
267                                 <include name="*.jar" />
268                         </fileset>
269                         <fileset dir="${release}">
270                                 <include name="*.jar" />
271                                 <include name="jME.zip" />
272                                 <include name="src.zip" />
273                         </fileset>
274                 </ftp>
275                 <!--        </copy>-->
276         </target>
277
278 </project>