git clone of logicmail with some fixes/features added
at master 355 lines 14 kB view raw
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>