OSDN Git Service

Removed useless attr
[mikumikustudio/MikuMikuStudio.git] / build.xml
1 <?xml version="1.0"?>
2 <project name="jME" default="compile">
3   <description>
4     Ant Build File for the jME API.
5     $Id$
6   </description>
7   <!-- Since we have developers who use different tab-stop settings in their
8        editors and IDE's, please us spaces, not tabs, for indentation.
9        (Your editor or IDE has a setting to automatically change your tab
10        keystrokes into spaces). -->
11
12   <import file="build-import.xml" />
13
14   <property name="class" location="${build}" />
15   <property name="jars" location="${release}" />
16   <property name="webstart" location="${seg}/jnlp" />
17
18   <property file="build.properties" />
19   <!--    defaults for build.properties:-->
20   <property name="keyStore" value="jmeKeyStore" />
21   <property name="storepass" value="..." />
22   <property name="ftpuser" value="..." />
23   <property name="ftppassword" value="..." />
24   <property name="ftphost" value="ftp.jmonkeyengine.com" />
25     <!-- You may prefer to set javac.debug to false to reduce size. -->
26   <property name="javac.debug" value="true" />
27   <property name="javac.maxmem" value="256m" />
28   <property name="javac.source" value="1.5" />
29   <property name="javac.target" value="1.5" />
30     <!-- N.b. the .source and .target setting are NOT for source and target
31          directories, but for source and target JVM versions. -->
32   <property name="javac.debuglevel" value="lines,source" />
33     <!-- Having line numbers in debug output is useful for the 99.9%
34          of non-public builds, esp. for custom-builders who have
35          runtime problems.   - blaine  -->
36   <!--    end of defaults -->
37
38   <path id="classpath">
39     <fileset dir="${libs}">
40       <include name="**/*.jar" />
41     </fileset>
42     <pathelement path="${class}" />
43   </path>
44
45   <target name="init">
46     <echo message="${keyStore}" />
47     <mkdir dir="${src}" />
48     <mkdir dir="${class}" />
49     <mkdir dir="${data}" />
50     <mkdir dir="${doc}" />
51   </target>
52
53   <!-- Compiles all the jME classes, including com.jmex.* -->
54   <target name="compile" depends="init" description="generate jme classes">
55     <copy todir="${class}">
56       <fileset dir="${src}" includes="com/**" excludes="**/*.java"/>
57     </copy>
58     <javac source="${javac.source}" target="${javac.target}"
59       srcdir="${src}" destdir="${class}" includes="com/**/*.java"
60       classpathref="classpath" listfiles="no" fork="true"
61       memoryMaximumSize="${javac.maxmem}" debug="${javac.debug}"/>
62   </target>
63
64   <target name="run-testchooser" depends="compile-test" description="Runs the TestChooser">
65     <java classname="jmetest.TestChooser" fork="true" classpathref="classpath">
66       <jvmarg value=  "-Djava.library.path=${libs}/jogl/native/windows_amd64;${libs}/jogl/native/macosx;${libs}/jogl/native/linux_i586;${libs}/jogl/native/linux_amd64;${libs}/jogl/native/windows_i586;${libs}/lwjgl/native/linux;${libs}/lwjgl/native/macosx;${libs}/lwjgl/native/win32;${libs}/swt/linux;${libs}/swt/macosx-carbon;${libs}/swt/macosx-cocoa;${libs}/swt/windows"/>
67     </java>
68   </target>
69
70   <!-- Jar files for different parts of the jME API -->
71
72   <target name="dist-core" depends="compile" description="generate jme jar file">
73     <jar jarfile="${jars}/jme.jar" basedir="${class}" update="no" compress="true" includes="**/com/jme/**/*.class, **/com/jme/**/*.tga, **/com/jme/**/*.png, **/com/jme/**/*.glf, **/com/jme/**/*.vert, **/com/jme/**/*.frag" />
74   </target>
75   <target name="dist-audio" depends="compile" description="generate jme jar file (audio)">
76     <jar jarfile="${jars}/jme-audio.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/audio/**/*.class" />
77   </target>
78   <target name="dist-awt" depends="compile" description="generate jme jar file (awt)">
79     <jar jarfile="${jars}/jme-awt.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/awt/**/*.class" />
80   </target>
81   <target name="dist-swt" depends="compile" description="generate jme jar file (swt)">
82     <jar jarfile="${jars}/jme-swt.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/swt/**/*.class" />
83   </target>
84   <target name="dist-editors" depends="compile" description="generate jme jar file (editors)">
85     <jar jarfile="${jars}/jme-editors.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/editors/**/*.class" />
86   </target>
87   <target name="dist-effects" depends="compile" description="generate jme jar file (effects)">
88     <jar jarfile="${jars}/jme-effects.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/effects/**/*.class, **/com/jmex/effects/**/data/*.*" />
89   </target>
90   <target name="dist-font" depends="compile" description="generate jme jar file (font)">
91     <jar jarfile="${jars}/jme-font.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/font2d/**/*.class,**/com/jmex/font3d/**/*.class" />
92   </target>
93   <target name="dist-gamestates" depends="compile" description="generate jme jar file (gamestates)">
94     <jar jarfile="${jars}/jme-gamestates.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/game/**/*.class" />
95   </target>
96   <target name="dist-model" depends="compile" description="generate jme jar file (model)">
97     <jar jarfile="${jars}/jme-model.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/model/**/*.class" excludes="**/com/jmex/model/collada/**" />
98   </target>
99   <target name="dist-collada" depends="compile" description="generate jme jar file (collada)">
100     <jar jarfile="${jars}/jme-collada.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/model/collada/**/*.class" />
101   </target>
102   <target name="dist-scene" depends="compile" description="generate jme jar file (scene)">
103     <jar jarfile="${jars}/jme-scene.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/scene/**/*.class" />
104   </target>
105   <target name="dist-terrain" depends="compile" description="generate jme jar file (terrain)">
106     <jar jarfile="${jars}/jme-terrain.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/terrain/**/*.class" />
107   </target>
108   <target name="dist-xml" depends="compile" description="generate jme jar file (xml)">
109     <jar jarfile="${jars}/jme-xml.jar" basedir="${class}" update="no" compress="true" includes="**/com/jmex/xml/**/*.class" />
110   </target>
111   <!-- Creates all the jME jars -->
112   <target name="dist-all" depends="dist-core, dist-terrain, dist-audio, dist-awt, dist-swt, dist-effects, dist-model, dist-collada, dist-editors, dist-font, dist-gamestates, dist-scene, dist-xml" description="Generate all jar files" />
113
114   <target name="webdist-all" depends="dist-all" description="sign JARs for JNLP distribution">
115     <signjar jar="${jars}/jme.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
116     <signjar jar="${jars}/jme-awt.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
117     <signjar jar="${jars}/jme-swt.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
118     <signjar jar="${jars}/jme-audio.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
119     <signjar jar="${jars}/jme-editors.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
120     <signjar jar="${jars}/jme-effects.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
121     <signjar jar="${jars}/jme-font.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
122     <signjar jar="${jars}/jme-gamestates.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
123     <signjar jar="${jars}/jme-model.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
124     <signjar jar="${jars}/jme-collada.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
125     <signjar jar="${jars}/jme-scene.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
126     <signjar jar="${jars}/jme-terrain.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
127     <signjar jar="${jars}/jme-xml.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
128   </target>
129
130   <!-- Generats javadoc -->
131   <target name="doc" depends="compile" description="generate the javadoc documentation">
132     <javadoc destdir="${doc}" useExternalFile="yes" author="true" version="true" use="true" package="yes" windowtitle="jME API" maxmemory="256m">
133       <fileset dir="${src}/com">
134         <include name="**/*.java" />
135         <exclude name="**/jmex/model/collada/schema/**" />
136       </fileset>
137     </javadoc>
138   </target>
139
140   <!-- Removes all compiled files and documentation, but leaves any created jars -->
141   <target name="clean" description="clean up">
142     <delete dir="${class}" />
143     <delete dir="${doc}" />
144     <delete>
145       <fileset dir="${src}" includes="**/*.class" />
146       <fileset dir="${release}" includes="jme*.jar" />
147       <fileset dir="${webstart}" includes="*.jar" />
148     </delete>
149   </target>
150
151   <target name="rebuild" depends="clean" description="build from clean">
152     <ant />
153   </target>
154
155   <!-- *** jmetest-related build targets -->
156
157   <target name="compile-test" depends="compile" description="generate jme test classes">
158     <javac source="${javac.source}" target="${javac.target}"
159       srcdir="${src}" destdir="${class}" includes="jmetest/**/*.java"
160       classpathref="classpath" fork="true" memoryMaximumSize="${javac.maxmem}"
161       debug="${javac.debug}"/>
162     <!-- copy the resources into the build directory -->
163     <copy todir="${class}">
164       <fileset dir="${src}" includes="jmetest/**" excludes="**/*.java"/>
165     </copy>
166   </target>
167
168   <target name="dist-test" depends="compile-test" description="generate jme test class and data jars">
169     <!-- Jar the demo classes -->
170
171     <pathconvert property="jarclasspathlibs" pathsep=" " dirsep="/">
172       <path>
173         <fileset dir="${libs}">
174           <include name="*.jar" />
175         </fileset>
176       </path>
177       <mapper type="regexp" from=".*(lib.*)" to="\1" />
178     </pathconvert>
179     <pathconvert property="jarclasspathrelease" pathsep=" " dirsep="/">
180       <path>
181         <fileset dir="${jars}">
182           <include name="*.jar" />
183           <exclude name="jmetest.jar" />
184         </fileset>
185       </path>
186       <mapper type="regexp" from=".*target.(.*)" to="\1" />
187     </pathconvert>
188     <echo>${jarclasspathlibs} ${jarclasspathrelease}</echo>
189
190     <jar jarfile="${jars}/jmetest.jar" basedir="${class}" compress="true" excludes="**/jmetest/**/data/**,**/com/**" index="yes">
191       <manifest>
192         <attribute name="Implementation-Title" value="${name}" />
193         <attribute name="Implementation-Vendor" value="${vendor}" />
194         <attribute name="Version" value="${major}.${minor}" />
195         <attribute name="Class-Path" value="${jarclasspathlibs} ${jarclasspathrelease}" />
196         <attribute name="Main-Class" value="${mainclass}" />
197       </manifest>
198     </jar>
199
200     <!-- Jar the demo data -->
201     <jar jarfile="${jars}/jmetest-data-cursor.jar" basedir="${class}" compress="true" includes="**/jmetest/data/cursor/**" />
202     <jar jarfile="${jars}/jmetest-data-images.jar" basedir="${class}" compress="true" includes="**/jmetest/data/images/**" />
203     <jar jarfile="${jars}/jmetest-data-model.jar" basedir="${class}" compress="true" includes="**/jmetest/data/model/**" />
204     <jar jarfile="${jars}/jmetest-data-skybox1.jar" basedir="${class}" compress="true" includes="**/jmetest/data/skybox1/**" />
205     <jar jarfile="${jars}/jmetest-data-sound.jar" basedir="${class}" compress="true" includes="**/jmetest/data/sound/**" />
206     <jar jarfile="${jars}/jmetest-data-texture.jar" basedir="${class}" compress="true" includes="**/jmetest/data/texture/**" />
207   </target>
208
209   <target name="webdist-test" depends="dist-test" description="sign test jars for Webstart distribution">
210     <signjar jar="${jars}/jmetest.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
211     <signjar jar="${jars}/jmetest-data-cursor.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
212     <signjar jar="${jars}/jmetest-data-images.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
213     <signjar jar="${jars}/jmetest-data-model.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
214     <signjar jar="${jars}/jmetest-data-skybox1.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
215     <signjar jar="${jars}/jmetest-data-sound.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
216     <signjar jar="${jars}/jmetest-data-texture.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
217   </target>
218
219   <!-- Jar and sign all the libraries required by jME -->
220   <target name="webdist-nativelibs" description="jar and sign native libraries for Webstart distribution">
221     <!--  Jar and sign the Windows libraries -->
222     <jar jarfile="${webstart}/lwjgl-windows.jar" basedir="lib" includes="lwjgl.dll" update="yes" />
223     <jar jarfile="${webstart}/openal-windows.jar" basedir="lib" includes="OpenAL32.dll" update="yes" />
224     <jar jarfile="${webstart}/jinput-windows.jar" basedir="lib" includes="jinput-dxplugin.dll" update="yes" />
225     <signjar jar="${webstart}/lwjgl-windows.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
226     <signjar jar="${webstart}/openal-windows.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
227     <signjar jar="${webstart}/jinput-windows.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
228
229     <!-- Jar and sign Linux native libraries -->
230     <jar jarfile="${webstart}/lwjgl-linux.jar" basedir="lib" includes="liblwjgl.so" update="yes" />
231     <jar jarfile="${webstart}/openal-linux.jar" basedir="lib" includes="libopenal.so" update="yes" />
232     <jar jarfile="${webstart}/jinput-linux.jar" basedir="lib" includes="libjinput-linux.so" update="yes" />
233     <signjar jar="${webstart}/lwjgl-linux.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
234     <signjar jar="${webstart}/openal-linux.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
235     <signjar jar="${webstart}/jinput-linux.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
236
237     <!-- Jar (eventually) and sign Mac native libraries -->
238     <jar jarfile="${webstart}/lwjgl-mac.jar" basedir="lib" includes="liblwjgl.jnilib" update="yes" />
239     <jar jarfile="${webstart}/openal-mac.jar" basedir="lib" includes="openal.dylib" update="yes" />
240     <!--fix me: shouldn't it be a jnilib?-->
241     <jar jarfile="${webstart}/jinput-mac.jar" basedir="lib" includes="libjinput.jnilib" update="yes" />
242
243     <signjar jar="${webstart}/lwjgl-mac.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
244     <signjar jar="${webstart}/openal-mac.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
245     <signjar jar="${webstart}/jinput-mac.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
246
247     <!-- Sign the lwjgl jar -->
248     <signjar jar="${seg}/lib/lwjgl.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
249   </target>
250
251   <target name="nightly" depends="webdist-all, webdist-nativelibs, webdist-test">
252     <echo>${libs}/*.jar</echo>
253     <zip zipfile="${release}/jME.zip">
254       <zipfileset dir="${libs}" prefix="lib">
255         <include name="*.jar" />
256         <include name="*.dll" />
257         <include name="*.so" />
258         <include name="*.*lib" />
259       </zipfileset>
260       <fileset dir="${release}">
261         <include name="*.jar" />
262       </fileset>
263     </zip>
264     <zip zipfile="${release}/src.zip">
265       <zipfileset dir="${src}" prefix="src">
266         <include name="**/*.*" />
267       </zipfileset>
268     </zip>
269     <!--        <mkdir dir="ftp"/>-->
270     <!--        <copy todir="ftp">-->
271     <ftp server="${ftphost}" 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         <include name="src.zip" />
283       </fileset>
284     </ftp>
285     <!--        </copy>-->
286   </target>
287
288 </project>