root/trunk/LogicMail/build.xml

Revision 360, 6.3 kB (checked in by octorian, 3 weeks ago)
  • 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="src.dir" location="src"/>
8    <property name="dist.dir" location="dist"/>
9        <property name="dist.ota.dir" location="distota"/>
10        <property name="dist.alx.dir" location="distalx"/>
11        <property name="docs.dir" location="docs"/>
12        <property name="startup.src.dir" location="../LogicMailStartup/src"/>
13        <property file="project.properties"/>
14
15    <!-- Task definitions -->
16        <typedef resource="bb-ant-defs.xml" classpath="../lib/bb-ant-tools.jar" />
17        <taskdef resource="net/sf/antcontrib/antcontrib.properties">
18                <classpath>
19                        <pathelement location="../lib/ant-contrib-1.0b3.jar"/>
20                </classpath>
21        </taskdef>
22    <taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask">
23        <classpath>
24            <pathelement location="../lib/xmltask.jar"/>
25        </classpath>
26        </taskdef>
27
28        <macrodef name="build-platform">
29                <attribute name="jdehome"/>
30                <attribute name="platform"/>
31                <attribute name="defines"/>
32                <sequential>
33                <mkdir dir="${dist.dir}/@{platform}"/>
34                <copy file="${src.dir}/icons/logicmail.png" todir="${dist.dir}/@{platform}"/>
35                <rapc output="${module.name}"
36                      srcdir="${src.dir}"
37                      destdir="${dist.dir}/@{platform}"
38                      jdehome="@{jdehome}"
39                          defines="@{preprocessor}">
40                                <jdp title="${module.title}"
41                                         vendor="${module.vendor}"
42                                         version="${module.version}"
43                                         type="cldc"
44                                         midletclass="org.logicprobe.LogicMail.LogicMail"
45                                         icon="logicmail.png">
46                                <entry arguments="autostart"
47                                           systemmodule="true"
48                                           runonstartup="true"
49                                           startuptier="7"/>
50                                </jdp>
51                    <src>
52                        <fileset dir="${src.dir}">
53                            <include name="**/*.java"/>
54                                <include name="**/*.rrc"/>
55                                <include name="**/*.rrh"/>
56                                                <exclude name="**/bb40"/>
57                                                <exclude name="**/*BB40.java"/>
58                            <include name="**/*.png"/>
59                        </fileset>
60                        <fileset dir="${startup.src.dir}">
61                                <include name="**/*.java"/>
62                                </fileset>
63                    </src>
64                </rapc>
65                <delete file="${dist.dir}/@{platform}/logicmail.png"/>
66                </sequential>
67        </macrodef>
68       
69        <!-- Build the application -->
70    <target name="build">
71        <if><isset property="jde421.home"/><then>
72                <build-platform jdehome="${jde421.home}" platform="BB421" defines="BLACKBERRY_4_2_1" />
73                </then></if>
74        <if><isset property="jde450.home"/><then>
75                <build-platform jdehome="${jde450.home}" platform="BB450" defines="BLACKBERRY_4_5_0" />
76                </then></if>
77        </target>
78
79        <!-- Build the code documentation -->
80        <target name="javadoc" depends="build">
81                <javadoc destdir="${docs.dir}"
82                             author="true"
83                                 version="true"
84                                 use="true"
85                                 windowtitle="${module.description}">
86                        <fileset dir="${src.dir}">
87                                <include name="**/*.java"/>
88                                <exclude name="**/bb40"/>
89                                <exclude name="**/*BB40.java"/>
90                        </fileset>
91                        <fileset dir="${startup.src.dir}">
92                                <include name="**/*.java"/>
93                        </fileset>
94                        <classpath>
95                                <pathelement path="${jde421.home}/lib/net_rim_api.jar"/>
96                                <pathelement path="${dist.dir}/BB421/${module.name}.jar"/>
97                        </classpath>
98                </javadoc>
99        </target>
100
101        <!-- Build the desktop loader distribution -->
102        <target name="dist-alx" depends="build">
103                <mkdir dir="${dist.alx.dir}" />
104
105                <!-- Copy the files -->
106                <if><isset property="jde421.home"/><then>
107                        <mkdir dir="${dist.alx.dir}/BB421" />
108                        <copy todir="${dist.alx.dir}/BB421">
109                                <fileset dir="${dist.dir}/BB421" includes="*.jar *.jad *.cod"/>
110                        </copy>
111                </then></if>
112                <if><isset property="jde450.home"/><then>
113                        <mkdir dir="${dist.alx.dir}/BB450" />
114                        <copy todir="${dist.alx.dir}/BB450">
115                                <fileset dir="${dist.dir}/BB450" includes="*.jar *.jad *.cod"/>
116                        </copy>
117                </then></if>
118                <copy todir="${dist.alx.dir}">
119                        <fileset dir=".." includes="README.txt, LICENSE.txt, ChangeLog.txt"/>
120                </copy>
121
122                <!-- Modify and copy the ALX file -->
123                <!-- TODO: Add version conditionals -->
124        <xmltask
125            source="LogicMail.alx"
126            dest="${dist.alx.dir}/${module.name}.alx">
127                        <replace path="loader/application/version/text()" withText="${module.version}"/>
128                        <replace path="loader/application/fileset/files/text()" withText="${module.name}.cod"/>
129                </xmltask>
130        </target>
131
132        <macrodef name="copy-ota-files">
133                <attribute name="src"/>
134                <attribute name="dest"/>
135                <sequential>
136                        <mkdir dir="@{dest}"/>
137                        <delete failonerror="false"><fileset dir="@{dest}" includes="*.*"/></delete>
138                        <copy todir="@{dest}">
139                                <fileset dir="@{src}" includes="*.jar, *.jad"/>
140                        </copy>
141                <unzip src="@{src}/${module.name}.cod" dest="@{dest}"/>
142                </sequential>
143        </macrodef>
144
145        <target name="dist-ota" depends="build">
146                <mkdir dir="${dist.ota.dir}/${module.version}"/>
147                <xmltask dest="${dist.ota.dir}/download-entry.xml" outputter="simple:4">
148                        <insert path="/">
149                                <![CDATA[
150                                        <downloads>
151                                                <entry>
152                                                </entry>
153                                        </downloads>
154                                ]]> 
155                        </insert>
156                        <attr path="/downloads/entry" attr="name" value="${module.title} ${module.version}"/>
157                        <insert if="jde421.home" path="/downloads/entry">
158                                <![CDATA[
159                                        <file name="${module.version}/BB421/${module.name}.jad" target="4.2.1"/>
160                                ]]>
161                        </insert>
162                        <insert if="jde450.home" path="/downloads/entry">
163                                <![CDATA[
164                                        <file name="${module.version}/BB450/${module.name}.jad" target="4.5.0"/>
165                                ]]>
166                        </insert>
167                </xmltask>
168        <if><isset property="jde421.home"/><then>
169                        <copy-ota-files src="${dist.dir}/BB421" dest="${dist.ota.dir}/${module.version}/BB421"/>
170                </then></if>
171        <if><isset property="jde450.home"/><then>
172                        <copy-ota-files src="${dist.dir}/BB450" dest="${dist.ota.dir}/${module.version}/BB450"/>
173                </then></if>
174        </target>
175
176        <!-- Prepare the distribution -->
177        <target name="dist" depends="dist-alx,dist-ota">
178                <zip destfile="../LogicMail-${module.version}.zip">
179            <fileset dir="${dist.alx.dir}" />
180        </zip>
181                <zip destfile="../LogicMail-ota-${module.version}.zip">
182                        <fileset dir="${dist.ota.dir}" />
183                </zip>
184        </target>
185
186        <!-- Clean up -->
187        <target name="clean">
188                <delete dir="${dist.dir}"/>
189                <delete dir="${dist.alx.dir}"/>
190                <delete dir="${dist.ota.dir}"/>
191                <delete dir="${docs.dir}"/>
192        </target>
193</project>
Note: See TracBrowser for help on using the browser.