1 <?xml version='1.0' encoding='utf-8'?>
2 <project default="jar" basedir=".">
4 <property name="project.name" value="nevernote"/>
5 <property name="application.name" value="sandbox"/>
7 <!-- targeted QtJambi library version -->
8 <property name="qtjambi.ver" value="4.5.2_01"/>
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"/>
19 <!-- needed for running -->
22 <property name="javac.debug" value="true"/>
24 <!-- run parameter -->
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 -->
31 <!-- product jar file -->
32 <property name="jar.name" value="nevernote.jar"/>
34 <!-- product exec command -->
35 <property name="shell.command" value="nevernote.sh"/>
36 <property name="bat.command" value="nevernote.bat"/>
39 <property name="linguist.update" value="lupdate"/>
40 <property name="linguist.release" value="lrelease"/>
43 <property name="linguist.project" value="nevernote.pro"/>
46 <property name="doc.changelog" value="changelog.txt"/>
47 <property name="doc.release" value="release.txt"/>
48 <property name="doc.readme" value="README.txt"/>
51 <condition property="isWindows">
52 <os family="windows" />
54 <condition property="isLinux">
55 <os name="Linux" arch="i386" />
57 <condition property="isLinux64">
58 <os name="Linux" arch="amd64" />
60 <condition property="isMacOSX">
61 <os name="Mac OS X" />
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}"/>
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}"/>
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}"/>
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"/>
92 <!-- os dependent library path and lib file -->
93 <target name="check_syslib_path" depends="lib-if_windows, lib-if_linux, lib-if_linux64"/>
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"/>
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}"/>
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}"/>
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}"/>
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"/>
153 <target name="init" depends="set_classpath">
155 <mkdir dir="${classes.dir}"/>
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}"/>
165 <target name="update-tr-if_linux" depends="init" if="isLinux">
166 <exec executable="${linguist.update}">
167 <arg line="${linguist.project}"/>
170 <target name="update-tr-if_linux64" depends="init" if="isLinux64">
171 <exec executable="${linguist.update}">
172 <arg line="${linguist.project}"/>
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}"/>
182 <target name="release-tr-if_linux" depends="init" if="isLinux">
183 <exec executable="${linguist.release}">
184 <arg line="${linguist.project}"/>
187 <target name="release-tr-if_linux64" depends="init" if="isLinux64">
188 <exec executable="${linguist.release}">
189 <arg line="${linguist.project}"/>
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"/>
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"/>
208 <mkdir dir="${classes.dir}/translations"/>
209 <copy todir="${classes.dir}/translations">
210 <fileset file="translations/*.qm"/>
214 <target name="jar" depends="compile,resources,release-tr">
215 <jar destfile="${jar.name}" basedir="${classes.dir}"/>
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"/>
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}"/>
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}"/>
239 <exec dir="dist" executable="tar">
240 <arg line="czf ../../nevernote-bin.tar.gz ."/>
245 <target name="run-init" depends="init, resources, jar">
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}"/>
260 <!-- script test run -->
261 <target name="run-script" depends="run-if_windows, run-if_linux, run-if_linux64"
262 description="run starter script">
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}"/>
270 <target name="run-if_linux" depends="run-init" if="isLinux">
271 <exec executable="${bin.dir}/${shell.command}"/>
273 <target name="run-if_linux64" depends="run-init" if="isLinux64">
274 <exec executable="${bin.dir}/${shell.command}"/>
279 description="clean up without classes and run env" >
280 <delete dir="${dist.dir}" />
281 <delete file="${jar.name}"/>
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"/>
291 <fileset file="${tr.dir}/*.qm"/>
292 <fileset file="${tr.dir}/*.po"/>