OSDN Git Service

Correct errors relating to LaTeX images & editing.
[neighbornote/NeighborNote.git] / build.xml
1 <?xml version='1.0' encoding='utf-8'?>
2 <project default="jar" basedir=".">
3   <!-- program name -->
4   <property name="project.name" value="nevernote"/>
5   <property name="application.name" value="sandbox"/>
6
7   <!-- targeted QtJambi library version  -->
8   <property name="qtjambi.ver" value="4.5.2_01"/>
9
10   <!-- project directory hierarchy -->
11   <property name="src.dir" value="src"/>
12   <property name="classes.dir" value="build"/>
13   <property name="dist.dir" value="dist"/>
14   <property name="lib.dir" value="lib"/>
15   <property name="bin.dir" value="bin"/>
16   <property name="doc.dir" value="doc"/>
17   <property name="tr.dir" value="translations"/>
18
19   <!-- needed for running -->
20
21   <!-- debug -->
22   <property name="javac.debug" value="true"/>
23
24   <!-- run parameter -->
25   <!-- heap -->
26   <property name="jvm.xms" value="256M"/><!-- initial memory size -->
27   <property name="jvm.xmm" value="512M"/><!-- maximum memory size -->
28   <property name="jvm.newratio" value="2"/>
29   <property name="jvm.gcs" value="incgc"/><!-- GC strategy -->
30
31   <!-- product jar file -->
32   <property name="jar.name" value="nevernote.jar"/>
33
34   <!-- product exec command -->
35   <property name="shell.command" value="nevernote.sh"/>
36   <property name="bat.command" value="nevernote.bat"/>
37
38   <!-- qt utils -->
39   <property name="linguist.update" value="lupdate"/>
40   <property name="linguist.release" value="lrelease"/>
41
42   <!-- translations -->
43   <property name="linguist.project" value="nevernote.pro"/>
44
45   <!-- documents -->
46   <property name="doc.changelog" value="changelog.txt"/>
47   <property name="doc.release" value="release.txt"/>
48   <property name="doc.readme" value="README.txt"/>
49
50   <!-- check os -->
51   <condition property="isWindows">
52       <os family="windows" />
53   </condition>
54   <condition property="isLinux">
55       <os name="Linux" arch="i386" />
56   </condition>
57   <condition property="isLinux64">
58       <os name="Linux" arch="amd64" />
59   </condition>
60   <condition property="isMacOSX">
61       <os name="Mac OS X" />
62   </condition>
63
64   <!-- flexible looking for qtjambi library path -->
65   <target name="set-jambi-path32" depends="set-jambi-path" unless="qtlib.dir">
66       <available file="../qtjambi-linux32-lgpl-${qtjambi.ver}"
67                  property="qtlib.dir" value="../qtjambi-linux32-lgpl-${qtjambi.ver}"/>
68       <available file="../qtjambi-linux32-community-${qtjambi.ver}"
69                  property="qtlib.dir" value="../qtjambi-linux32-community-${qtjambi.ver}"/>
70   </target>
71   <target name="set-jambi-path64" depends="set-jambi-path" unless="qtlib.dir">
72       <available file="../qtjambi-linux64-lgpl-${qtjambi.ver}"
73                  property="qtlib.dir" value="../qtjambi-linux64-lgpl-${qtjambi.ver}"/>
74       <available file="../qtjambi-linux64-community-${qtjambi.ver}"
75                  property="qtlib.dir" value="../qtjambi-linux64-community-${qtjambi.ver}"/>
76   </target>
77   <target name="set-jambi-pathmac" depends="set-jambi-path" unless="qtlib.dir">
78       <available file="../qtjambi-macosx-lgpl-${qtjambi.ver}"
79                  property="qtlib.dir" value="../qtjambi-macosx-lgpl-${qtjambi.ver}"/>
80       <available file="../qtjambi-macosx-community-${qtjambi.ver}"
81                  property="qtlib.dir" value="../qtjambi-macosx-community-${qtjambi.ver}"/>
82   </target>
83   <target name="set-jambi-path" unless="qtlib.dir">
84       <available file="${user.home}/lib/qtjambi/qtjambi-${qtjambi.ver}.jar" 
85                  property="qtlib.dir" value="${user.home}/lib/qtjambi"/>
86       <available file="${user.home}/lib/qtjambi-${qtjambi.ver}.jar" 
87                  property="qtlib.dir" value="${user.home}/lib"/>
88       <available file="lib/qtjambi-${qtjambi.ver}.jar"
89                  property="qtlib.dir" value="lib"/>
90   </target>
91
92   <!-- os dependent library path and lib file -->
93   <target name="check_syslib_path" depends="lib-if_windows, lib-if_linux, lib-if_linux64"/>
94
95   <target name="lib-if_windows" if="isWindows">
96       <property name="system.lib.dir" value="D:/NeverNote/lib"/>
97       <property name="qtlib.dir" value="D:/qtjambi-${qtjambi.ver}"/>
98       <property name="qtjambi-platform" value="win32-msvc2005"/>
99   </target>
100
101   <target name="lib-if_linux" depends="set-jambi-path32" if="isLinux">
102       <property name="system.lib.dir" value="/usr/share/java"/>
103       <property name="qtjambi.platform" value="linux32-gcc"/>
104       <echo message="use qtjambi library at ${qtlib.dir}"/>
105   </target>
106   <target name="lib-if_linux64" depends="set-jambi-path64" if="isLinux64">
107       <property name="system.lib.dir" value="/usr/share/java"/>
108       <property name="qtjambi.platform" value="linux64-gcc"/>
109       <echo message="use qtjambi library at ${qtlib.dir}"/>
110   </target>
111   <target name="lib-if_macosx" depends="set-jambi-pathmac" if="isMacOSX">
112       <property name="system.lib.dir" value="/Library/Java/Extensions"/>
113       <property name="qtjambi.platform" value="macosx-gcc"/>
114       <echo message="use qtjambi library at ${qtlib.dir}"/>
115   </target>
116
117   <!-- compiler classpath -->
118   <target name="set_classpath" depends="check_syslib_path">
119     <path id="java.classpath">
120       <!-- bundled library -->
121       <pathelement location="${lib.dir}/apache-mime4j-0.6.jar"/>
122       <pathelement location="${lib.dir}/commons-codec-1.3.jar"/>
123       <pathelement location="${lib.dir}/commons-compress-1.1.jar"/>
124       <pathelement location="${lib.dir}/commons-lang-2.4.jar"/>
125       <pathelement location="${lib.dir}/commons-logging-1.1.1.jar"/>
126       <pathelement location="${lib.dir}/evernote.jar"/>
127       <pathelement location="${lib.dir}/libthrift.jar"/>
128       <pathelement location="${lib.dir}/PDFRenderer.jar"/>
129       <pathelement location="${lib.dir}/log4j-1.2.14.jar"/>
130       <pathelement location="${lib.dir}/h2-1.2.136.jar"/>
131       <pathelement location="${lib.dir}/commons-lang-2.4.jar"/>
132       <pathelement location="${lib.dir}/jtidy-r938.jar"/>
133       <pathelement location="${lib.dir}/httpclient-4.0.3.jar"/>
134       <pathelement location="${lib.dir}/httpcore-4.0.1.jar"/>
135       <pathelement location="${lib.dir}/httpmime-4.0.3.jar"/>
136       <pathelement location="${lib.dir}/jaxen-1.1.3.jar"/>
137       <pathelement location="${lib.dir}/jazzy.jar"/>
138       <pathelement location="${lib.dir}/pdfbox-app-1.3.1.jar"/>
139       <pathelement location="${lib.dir}/poi-3.7-20101029.jar"/>
140       <pathelement location="${lib.dir}/poi-ooxml-3.7.jar"/>
141       <pathelement location="${lib.dir}/poi-ooxml-schemas-3.7-20101029.jar"/>
142       <pathelement location="${lib.dir}/poi-scratchpad-3.7-20101029.jar"/>
143       <pathelement location="${lib.dir}/tika.jar"/>
144       <pathelement location="${lib.dir}/xmlbeans-2.3.0.jar"/>
145       <pathelement location="${lib.dir}/xsdlib-20060615.jar"/>
146       <!-- dependent library -->
147       <pathelement location="${qtlib.dir}/qtjambi-${qtjambi.ver}.jar"/>
148       <pathelement location="${qtlib.dir}/qtjambi-${qtjambi.platform}-${qtjambi.ver}.jar"/>
149       <pathelement location="${qtlib.dir}/qtjambi-util-${qtjambi.ver}.jar"/>
150     </path>
151   </target>
152
153   <target name="init" depends="set_classpath">
154     <tstamp/>
155     <mkdir dir="${classes.dir}"/>
156   </target>
157
158   <!-- translate -->
159   <target name="update-tr" depends="update-tr-if_linux, update-tr-if_linux64, update-tr-if_windows"/>
160   <target name="update-tr-if_windows" depends="init" if="isWindows">
161     <exec dir="." executable="cmd" os="Windows NT">
162         <arg line="/c ${bin.dir}\${linguist.update} ${linguist.project}"/>
163     </exec>
164   </target>
165   <target name="update-tr-if_linux" depends="init" if="isLinux">
166     <exec executable="${linguist.update}">
167         <arg line="${linguist.project}"/>
168     </exec>
169   </target>
170   <target name="update-tr-if_linux64" depends="init" if="isLinux64">
171     <exec executable="${linguist.update}">
172         <arg line="${linguist.project}"/>
173     </exec>
174   </target>
175
176   <target name="release-tr" depends="release-tr-if_linux, release-tr-if_linux64, release-tr-if_windows"/>
177   <target name="release-tr-if_windows" depends="init" if="isWindows">
178     <exec dir="." executable="cmd" os="Windows NT">
179         <arg line="/c ${bin.dir}\${linguist.release} ${linguist.project}"/>
180     </exec>
181   </target>
182   <target name="release-tr-if_linux" depends="init" if="isLinux">
183     <exec executable="${linguist.release}">
184         <arg line="${linguist.project}"/>
185     </exec>
186   </target>
187   <target name="release-tr-if_linux64" depends="init" if="isLinux64">
188     <exec executable="${linguist.release}">
189         <arg line="${linguist.project}"/>
190     </exec>
191   </target>
192
193   <!-- build -->
194   <target name="compile" depends="init">
195     <javac srcdir="${src.dir}"
196        destdir="${classes.dir}"
197        debug="${javac.debug}"
198        includeantruntime="false">
199        <classpath refid="java.classpath"/>
200     </javac>
201   </target>
202
203   <target name="resources" depends="init,release-tr">
204       <mkdir dir="${classes.dir}/cx/fbn/nevernote/icons"/>
205       <copy todir="${classes.dir}/cx/fbn/nevernote/icons">
206           <fileset dir="${src.dir}/cx/fbn/nevernote/icons"/>
207       </copy>
208       <mkdir dir="${classes.dir}/translations"/>
209       <copy todir="${classes.dir}/translations">
210           <fileset file="translations/*.qm"/>
211       </copy>
212   </target>
213
214   <target name="jar" depends="compile,resources,release-tr">
215     <jar destfile="${jar.name}" basedir="${classes.dir}"/>
216   </target>
217
218   <!-- make distribution -->
219   <target name="dist-init" depends="init">
220     <mkdir dir="${dist.dir}"/>
221     <mkdir dir="${dist.dir}/lib"/>
222     <mkdir dir="${dist.dir}/bin"/>
223     <mkdir dir="${dist.dir}/doc"/>
224   </target>
225
226   <target name="dist" depends="jar, dist-init">
227      <copy file="${bin.dir}/${shell.command}" todir="${dist.dir}/bin"/>
228      <copy file="${bin.dir}/${bat.command}" todir="${dist.dir}/bin"/>
229      <copy todir="${dist.dir}/lib">
230        <fileset file="${jar.name}"/>
231        <fileset dir="${lib.dir}"/>
232      </copy>
233      <copy todir="${dist.dir}/doc">
234        <fileset file="${doc.changelog}"/>
235        <fileset file="${doc.release}"/>
236        <fileset file="${doc.readme}"/>
237        <fileset dir="${doc.dir}"/>
238      </copy>
239      <exec dir="dist" executable="tar">
240          <arg line="czf ../../nevernote-bin.tar.gz ."/>
241      </exec>
242   </target>
243
244   <!-- test run -->
245   <target name="run-init" depends="init, resources, jar">
246     <tstamp/>
247     <mkdir dir="res"/>
248   </target>
249
250   <target name="run" depends="run-init">
251     <java classname="cx.fbn.nevernote.NeverNote"
252       fork="yes" maxmemory="${jvm.xmm}"
253       classpathref="java.classpath" classpath="${jar.name}">
254       <jvmarg value="-XX:NewRatio=${jvm.newratio}"/>
255       <jvmarg value="-X${jvm.gcs}"/>
256       <arg value="--name=${application.name}"/>
257     </java>
258   </target>
259
260   <!-- script test run -->
261   <target name="run-script" depends="run-if_windows, run-if_linux, run-if_linux64"
262    description="run starter script">
263   </target>
264
265   <target name="run-if_windows" depends="run-init" if="isWindows">
266     <exec dir="." executable="cmd" os="Windows NT">
267         <arg line="/c ${bin.dir}\${batch.command}"/>
268     </exec>
269   </target>
270   <target name="run-if_linux" depends="run-init" if="isLinux">
271     <exec executable="${bin.dir}/${shell.command}"/>
272   </target>
273   <target name="run-if_linux64" depends="run-init" if="isLinux64">
274     <exec executable="${bin.dir}/${shell.command}"/>
275   </target>
276
277   <!-- clean up -->
278   <target name="clean"
279    description="clean up without classes and run env" >
280     <delete dir="${dist.dir}" />
281     <delete file="${jar.name}"/>
282   </target>
283
284   <target name="all-clean" depends="clean"
285    description="clean up all" >
286     <delete dir="${classes.dir}" />
287     <delete dir="${logs.dir}" />
288     <delete dir="${db.dir}" />
289     <delete file="secure.txt"/>
290     <delete>
291           <fileset file="${tr.dir}/*.qm"/>
292           <fileset file="${tr.dir}/*.po"/>
293     </delete>
294     <delete dir="res"/>
295   </target>
296
297 </project>