source: trunk/LogicMail/build.xml @ 897

Revision 897, 14.0 KB checked in by octorian, 8 months ago (diff)

Library fixes

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
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>
Note: See TracBrowser for help on using the repository browser.