git clone of logicmail with some fixes/features added
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 Ant build file for the LogicMail application
4-->
5<project name="LogicMail" default="build" basedir=".">
6 <!-- Properties -->
7 <property name="dist.dir" location="dist"/>
8 <property name="dist.ota.dir" location="distota"/>
9 <property name="dist.alx.dir" location="distalx"/>
10 <property name="docs.dir" location="docs"/>
11 <property name="startup.src.dir" location="../LogicMailStartup/src"/>
12 <property file="project.properties"/>
13
14 <!-- Task definitions -->
15 <typedef resource="bb-ant-defs.xml" classpath="../lib/bb-ant-tools.jar" />
16 <taskdef resource="net/sf/antcontrib/antcontrib.properties">
17 <classpath>
18 <pathelement location="../lib/ant-contrib-1.0b3.jar"/>
19 </classpath>
20 </taskdef>
21 <taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask">
22 <classpath>
23 <pathelement location="../lib/xmltask.jar"/>
24 </classpath>
25 </taskdef>
26
27 <!-- Prepare the resource file list -->
28 <propertyregex property="rrc.files"
29 input="${module.locales}"
30 regexp="([^,]+)"
31 global="true"
32 replace="LogicMail_\1.rrc"
33 />
34
35 <macrodef name="build-platform">
36 <attribute name="jdehome"/>
37 <attribute name="platform"/>
38 <attribute name="defines"/>
39 <attribute name="platformfileset"/>
40 <sequential>
41 <if><istrue value="${module.release}"/><then>
42 <if><isset property="module.release.param"/><then>
43 <property name="argument.release" value="-release:${module.release.param}"/>
44 </then><else>
45 <property name="argument.release" value="-release"/>
46 </else></if>
47 </then><else>
48 <property name="argument.release" value=""/>
49 </else></if>
50
51 <if><isset property="webtrends.library"/><then>
52 <fileset id="startupfileset" dir="${startup.src.dir}">
53 <include name="**/*.java"/>
54 <include name="**/*.xml"/>
55 </fileset>
56 </then><else>
57 <fileset id="startupfileset" dir="${startup.src.dir}">
58 <include name="**/*.java"/>
59 <exclude name="**/*Webtrends*.java"/>
60 </fileset>
61 </else></if>
62
63 <mkdir dir="${dist.dir}/@{platform}"/>
64 <copy file="res/icons/logicmail.png" todir="${dist.dir}/@{platform}"/>
65 <rapc output="${module.name}"
66 srcdir="src"
67 destdir="${dist.dir}/@{platform}"
68 jdehome="@{jdehome}"
69 defines="@{preprocessor}"
70 generatesourcelist="true">
71 <jdp title="${module.title}"
72 vendor="${module.vendor}"
73 version="${module.version}.${module.build}"
74 type="cldc"
75 midletclass="org.logicprobe.LogicMail.LogicMail"
76 icon="logicmail.png"
77 arguments="-build:${module.build} ${argument.release}">
78 <entry arguments="-build:${module.build} ${argument.release} autostartup"
79 systemmodule="true"
80 runonstartup="true"
81 startuptier="7"/>
82 </jdp>
83 <src>
84 <fileset dir="src">
85 <include name="**/*.java"/>
86 </fileset>
87 <fileset dir="res">
88 <include name="**/*.png"/>
89 </fileset>
90 <fileset dir="res/org/logicprobe/LogicMail"
91 includes="LogicMail.rrc,LogicMail.rrh,${rrc.files} "/>
92 <fileset refid="startupfileset" />
93 <fileset refid="@{platformfileset}" />
94
95 <!-- NOTE: This line needs to be commented out if building without analytics support -->
96 <fileset file="${webtrends.library}" />
97 </src>
98
99 <!-- NOTE: This line needs to be commented out if building without analytics support -->
100 <import location="${webtrends.library}" />
101
102 </rapc>
103 <delete file="${dist.dir}/@{platform}/logicmail.png"/>
104 </sequential>
105 </macrodef>
106
107 <!-- Generate the analytics configuration file -->
108 <target name="webtrends-config" if="webtrends.dcsid">
109 <if><istrue value="${module.release}"/><then>
110 <property name="webtrends.debug" value="false"/>
111 </then><else>
112 <property name="webtrends.debug" value="true"/>
113 </else></if>
114
115 <xmltask source="../lib/webtrends-template.xml"
116 dest="${startup.src.dir}/org/logicprobe/LogicMail/webtrends.xml"
117 outputter="default">
118 <replace path="/resources/string[@name='wt_dc_app_name']/text()" withText="${module.name}"/>
119 <replace path="/resources/string[@name='wt_dc_app_publisher']/text()" withText="${module.vendor}"/>
120 <replace path="/resources/string[@name='wt_dc_app_version']/text()" withText="${module.version}.${module.build}"/>
121 <replace path="/resources/string[@name='wt_dc_dcsid']/text()" withText="${webtrends.dcsid}"/>
122 <replace path="/resources/string[@name='wt_dc_debug']/text()" withText="${webtrends.debug}"/>
123 </xmltask>
124 </target>
125
126 <!-- Build the application -->
127 <target name="build">
128 <if><isset property="jde450.home"/><then>
129 <fileset id="bb450_fileset" dir="src" />
130 <build-platform jdehome="${jde450.home}" platform="BB450" defines="BLACKBERRY_4_5_0" platformfileset="bb450_fileset"/>
131 </then></if>
132 <if><isset property="jde460.home"/><then>
133 <fileset id="bb460_fileset" dir="..">
134 <include name="LogicMail_BB46/src/**/*.java" />
135 <include name="LogicMail_BB46/res/**/*.png" />
136 </fileset>
137 <build-platform jdehome="${jde460.home}" platform="BB460" defines="BLACKBERRY_4_6_0" platformfileset="bb460_fileset"/>
138 </then></if>
139 <if><isset property="jde470.home"/><then>
140 <fileset id="bb470_fileset" dir="..">
141 <include name="LogicMail_BB46/src/**/*.java" />
142 <include name="LogicMail_BB46/res/**/*.png" />
143 <include name="LogicMail_BB47/src/**/*.java" />
144 <include name="LogicMail_BB47/res/**/*.png" />
145 </fileset>
146 <build-platform jdehome="${jde470.home}" platform="BB470" defines="BLACKBERRY_4_7_0" platformfileset="bb470_fileset"/>
147 </then></if>
148 <if><isset property="jde500.home"/><then>
149 <fileset id="bb500_fileset" dir="..">
150 <include name="LogicMail_BB46/src/**/*.java" />
151 <include name="LogicMail_BB46/res/**/*.png" />
152 <include name="LogicMail_BB47/src/**/*.java" />
153 <include name="LogicMail_BB47/res/**/*.png" />
154 <include name="LogicMail_BB50/src/**/*.java" />
155 <include name="LogicMail_BB50/res/**/*.png" />
156 </fileset>
157 <build-platform jdehome="${jde500.home}" platform="BB500" defines="BLACKBERRY_5_0_0" platformfileset="bb500_fileset"/>
158 </then></if>
159 <if><isset property="jde600.home"/><then>
160 <fileset id="bb600_fileset" dir="..">
161 <include name="LogicMail_BB46/src/**/*.java" />
162 <include name="LogicMail_BB46/res/**/*.png" />
163 <include name="LogicMail_BB47/src/**/*.java" />
164 <include name="LogicMail_BB47/res/**/*.png" />
165 <include name="LogicMail_BB50/src/**/*.java" />
166 <include name="LogicMail_BB50/res/**/*.png" />
167 <include name="LogicMail_BB60/src/**/*.java" />
168 <include name="LogicMail_BB60/res/**/*.png" />
169 </fileset>
170 <build-platform jdehome="${jde600.home}" platform="BB600" defines="BLACKBERRY_6_0_0" platformfileset="bb600_fileset"/>
171 </then></if>
172 </target>
173
174 <!-- Sign the application -->
175 <target name="sign" depends="build" if="sigtool.password">
176 <if><isset property="jde450.home"/><then>
177 <sigtool jdehome="${jde450.home}"
178 password="${sigtool.password}"
179 forceclose="true"
180 codfile="${dist.dir}/BB450/${module.name}.cod"/>
181 </then></if>
182 <if><isset property="jde460.home"/><then>
183 <sigtool jdehome="${jde460.home}"
184 password="${sigtool.password}"
185 forceclose="true"
186 codfile="${dist.dir}/BB460/${module.name}.cod"/>
187 </then></if>
188 <if><isset property="jde470.home"/><then>
189 <sigtool jdehome="${jde470.home}"
190 password="${sigtool.password}"
191 forceclose="true"
192 codfile="${dist.dir}/BB470/${module.name}.cod"/>
193 </then></if>
194 <if><isset property="jde500.home"/><then>
195 <sigtool jdehome="${jde500.home}"
196 password="${sigtool.password}"
197 forceclose="true"
198 codfile="${dist.dir}/BB500/${module.name}.cod"/>
199 </then></if>
200 <if><isset property="jde600.home"/><then>
201 <sigtool jdehome="${jde600.home}"
202 password="${sigtool.password}"
203 forceclose="true"
204 codfile="${dist.dir}/BB600/${module.name}.cod"/>
205 </then></if>
206 </target>
207
208 <!-- Build the code documentation -->
209 <target name="javadoc" depends="build">
210 <javadoc destdir="${docs.dir}"
211 author="true"
212 version="true"
213 use="true"
214 windowtitle="${module.description}">
215 <fileset dir="src">
216 <include name="**/*.java"/>
217 </fileset>
218 <fileset dir="${startup.src.dir}">
219 <include name="**/*.java"/>
220 </fileset>
221 <classpath>
222 <pathelement path="${jde450.home}/lib/net_rim_api.jar"/>
223 <pathelement path="${dist.dir}/BB450/${module.name}.jar"/>
224 </classpath>
225 </javadoc>
226 </target>
227
228 <!-- Build the desktop loader distribution -->
229 <target name="dist-alx" depends="build">
230 <mkdir dir="${dist.alx.dir}" />
231 <alx destdir="${dist.alx.dir}" filename="${module.name}.alx">
232 <application
233 id="${module.name}"
234 name="${module.title}"
235 description="${module.description}"
236 vendor="${module.vendor}"
237 version="${module.version}.${module.build}"
238 copyright="${module.copyright}">
239 <!--
240 Since there is no easy way to conditionally define these elements,
241 they will need to be manually edited if executing this task without
242 all supported JDE versions defined.
243 -->
244 <codset dir="BB450" greaterthanequal="4.5.0" lessthan="4.6.0">
245 <fileset dir="${dist.dir}/BB450" includes="*.cod" />
246 </codset>
247 <codset dir="BB460" greaterthanequal="4.6.0" lessthan="4.7.0">
248 <fileset dir="${dist.dir}/BB460" includes="*.cod" />
249 </codset>
250 <codset dir="BB470" greaterthanequal="4.7.0" lessthan="5.0.0">
251 <fileset dir="${dist.dir}/BB470" includes="*.cod" />
252 </codset>
253 <codset dir="BB500" greaterthanequal="5.0.0" lessthan="6.0.0">
254 <fileset dir="${dist.dir}/BB500" includes="*.cod" />
255 </codset>
256 <codset dir="BB600" greaterthanequal="6.0.0">
257 <fileset dir="${dist.dir}/BB600" includes="*.cod" />
258 </codset>
259 </application>
260 </alx>
261 <copy todir="${dist.alx.dir}">
262 <fileset dir=".." includes="README.txt, LICENSE.txt, ChangeLog.txt"/>
263 </copy>
264 </target>
265
266 <macrodef name="copy-ota-files">
267 <attribute name="src"/>
268 <attribute name="dest"/>
269 <sequential>
270 <mkdir dir="@{dest}"/>
271 <delete failonerror="false"><fileset dir="@{dest}" includes="*.*"/></delete>
272 <jadtool input="@{src}/${module.name}.jad" destdir="@{dest}">
273 <fileset dir="@{src}" includes="*.cod" />
274 </jadtool>
275 <replaceregexp file="@{dest}/${module.name}.jad" match="MIDlet-Jar-URL(.*)\n" replace="" />
276 <replaceregexp file="@{dest}/${module.name}.jad" match="MIDlet-Jar-Size(.*)\n" replace="" />
277 </sequential>
278 </macrodef>
279
280 <target name="dist-ota" depends="build">
281 <mkdir dir="${dist.ota.dir}/${module.version}"/>
282 <xmltask dest="${dist.ota.dir}/${module.version}/${module.name}-entry.xml" outputter="simple:4">
283 <insert path="/">
284 <![CDATA[
285 <application id="${module.name}">
286 <name>${module.title}</name>
287 <description>${module.description}</description>
288 <version>${module.version}.${module.build}</version>
289 <vendor>${module.vendor}</vendor>
290 <copyright>${module.copyright}</copyright>
291 </application>
292 ]]>
293 </insert>
294
295 <insert if="jde450.home" path="/application">
296 <![CDATA[
297 <jad blackberryVersion="[4.5.0,4.6.0)" file="BB450/${module.name}.jad"/>
298 ]]>
299 </insert>
300 <insert if="jde460.home" path="/application">
301 <![CDATA[
302 <jad blackberryVersion="[4.6.0,4.7.0)" file="BB460/${module.name}.jad"/>
303 ]]>
304 </insert>
305 <insert if="jde470.home" path="/application">
306 <![CDATA[
307 <jad blackberryVersion="[4.7.0,5.0.0)" file="BB470/${module.name}.jad"/>
308 ]]>
309 </insert>
310 <insert if="jde500.home" path="/application">
311 <![CDATA[
312 <jad blackberryVersion="[5.0.0,6.0.0)" file="BB500/${module.name}.jad"/>
313 ]]>
314 </insert>
315 <insert if="jde600.home" path="/application">
316 <![CDATA[
317 <jad blackberryVersion="[6.0.0,)" file="BB600/${module.name}.jad"/>
318 ]]>
319 </insert>
320 </xmltask>
321 <if><isset property="jde450.home"/><then>
322 <copy-ota-files src="${dist.dir}/BB450" dest="${dist.ota.dir}/${module.version}/BB450"/>
323 </then></if>
324 <if><isset property="jde460.home"/><then>
325 <copy-ota-files src="${dist.dir}/BB460" dest="${dist.ota.dir}/${module.version}/BB460"/>
326 </then></if>
327 <if><isset property="jde470.home"/><then>
328 <copy-ota-files src="${dist.dir}/BB470" dest="${dist.ota.dir}/${module.version}/BB470"/>
329 </then></if>
330 <if><isset property="jde500.home"/><then>
331 <copy-ota-files src="${dist.dir}/BB500" dest="${dist.ota.dir}/${module.version}/BB500"/>
332 </then></if>
333 <if><isset property="jde600.home"/><then>
334 <copy-ota-files src="${dist.dir}/BB600" dest="${dist.ota.dir}/${module.version}/BB600"/>
335 </then></if>
336 </target>
337
338 <!-- Prepare the distribution -->
339 <target name="dist" depends="dist-alx,dist-ota">
340 <zip destfile="../LogicMail-${module.version}.zip">
341 <fileset dir="${dist.alx.dir}" />
342 </zip>
343 <zip destfile="../LogicMail-ota-${module.version}.zip">
344 <fileset dir="${dist.ota.dir}" />
345 </zip>
346 </target>
347
348 <!-- Clean up -->
349 <target name="clean">
350 <delete dir="${dist.dir}"/>
351 <delete dir="${dist.alx.dir}"/>
352 <delete dir="${dist.ota.dir}"/>
353 <delete dir="${docs.dir}"/>
354 </target>
355</project>