| 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> |
|---|