811a5a4a |
1 | <?xml version="1.0" ?>\r |
2 | <project name="TestFileManager" default="debug">\r |
3 | \r |
4 | <!-- Read properties from property file -->\r |
5 | <property file="build.properties" />\r |
6 | \r |
7 | <!-- Read manifest properties , e.g. manifest(android:versionName) or manifest.package -->\r |
8 | <xmlproperty file="AndroidManifest.xml" />\r |
9 | \r |
10 | <!-- Path to Android SDK and tools -->\r |
11 | <property name="sdk-folder" value="${android.sdk}" />\r |
12 | <property name="android-tools" value="${sdk-folder}/tools" />\r |
13 | <echo>Using Android SDK directory ${sdk-folder}</echo>\r |
14 | \r |
15 | <!-- Application Package Name -->\r |
16 | <property name="application-package" value="${manifest(package)}" />\r |
17 | <property name="version" value="${manifest(android:versionName)}" />\r |
18 | \r |
19 | <!-- The intermediates directory -->\r |
20 | <!-- Eclipse uses "bin" for its own output, so we do the same. -->\r |
21 | <property name="outdir" value="bin" />\r |
22 | \r |
23 | <!-- OpenIntents library file -->\r |
24 | <property name="openintents-lib-jar" value="lib/openintents-lib.jar" />\r |
25 | \r |
26 | <!-- No user servicable parts below. -->\r |
27 | \r |
28 | <property name="android-framework" value="${android-tools}/lib/framework.aidl" />\r |
29 | \r |
30 | <!-- Input directories -->\r |
31 | <property name="resource-dir" value="res" />\r |
32 | <property name="asset-dir" value="assets" />\r |
33 | <property name="srcdir" value="src" />\r |
34 | <condition property="srcdir-ospath" value="${basedir}\${srcdir}" else="${basedir}/${srcdir}">\r |
35 | <os family="windows" />\r |
36 | </condition>\r |
37 | \r |
38 | <property name="external-libs" value="lib" />\r |
39 | <condition property="external-libs-ospath" value="${basedir}\${external-libs}" else="${basedir}/${external-libs}">\r |
40 | <os family="windows" />\r |
41 | </condition>\r |
42 | \r |
43 | <!-- Output directories -->\r |
44 | <property name="outdir-classes" value="${outdir}/classes" />\r |
45 | <condition property="outdir-classes-ospath" value="${basedir}\${outdir-classes}" else="${basedir}/${outdir-classes}">\r |
46 | <os family="windows" />\r |
47 | </condition>\r |
48 | \r |
49 | <property name="docdir" value="doc" />\r |
50 | <property name="releasedir" value="release" />\r |
51 | \r |
52 | <!-- Create R.java in the source directory -->\r |
53 | <property name="outdir-r" value="src" />\r |
54 | \r |
55 | <!-- Intermediate files -->\r |
56 | <property name="dex-file" value="classes.dex" />\r |
57 | <property name="intermediate-dex" value="${outdir}/${dex-file}" />\r |
58 | <condition property="intermediate-dex-ospath" value="${basedir}\${intermediate-dex}" else="${basedir}/${intermediate-dex}">\r |
59 | <os family="windows" />\r |
60 | </condition>\r |
61 | \r |
62 | <!-- The final package file to generate -->\r |
63 | <property name="resources-package" value="${outdir}/${ant.project.name}.ap_" />\r |
64 | <condition property="resources-package-ospath" value="${basedir}\${resources-package}" else="${basedir}/${resources-package}">\r |
65 | <os family="windows" />\r |
66 | </condition>\r |
67 | \r |
68 | <property name="out-debug-package" value="${outdir}/${ant.project.name}.apk" />\r |
69 | <condition property="out-debug-package-ospath" value="${basedir}\${out-debug-package}" else="${basedir}/${out-debug-package}">\r |
70 | <os family="windows" />\r |
71 | </condition>\r |
72 | \r |
73 | <property name="out-unsigned-package" value="${outdir}/${ant.project.name}-unsigned.apk" />\r |
74 | <condition property="out-unsigned-package-ospath" value="${basedir}\${out-unsigned-package}" else="${basedir}/${out-unsigned-package}">\r |
75 | <os family="windows" />\r |
76 | </condition>\r |
77 | \r |
78 | <property name="out-signed-package" value="${outdir}/${ant.project.name}-${version}.apk" />\r |
79 | <condition property="out-signed-package-ospath" value="${basedir}\${out-signed-package}" else="${basedir}/${out-signed-package}">\r |
80 | <os family="windows" />\r |
81 | </condition>\r |
82 | \r |
83 | <property name="out-release-source" value="${releasedir}/${ant.project.name}-source-${version}" />\r |
84 | <condition property="out-release-source-ospath"\r |
85 | value="${basedir}\${out-release-source}"\r |
86 | else="${basedir}/${out-release-source}" >\r |
87 | <os family="windows"/>\r |
88 | </condition>\r |
89 | \r |
90 | <!-- Tools -->\r |
91 | <condition property="aapt" value="${android-tools}/aapt.exe" else="${android-tools}/aapt">\r |
92 | <os family="windows" />\r |
93 | </condition>\r |
94 | <condition property="aidl" value="${android-tools}/aidl.exe" else="${android-tools}/aidl">\r |
95 | <os family="windows" />\r |
96 | </condition>\r |
97 | <condition property="adb" value="${android-tools}/adb.exe" else="${android-tools}/adb">\r |
98 | <os family="windows" />\r |
99 | </condition>\r |
100 | <condition property="dx" value="${android-tools}/dx.bat" else="${android-tools}/dx">\r |
101 | <os family="windows" />\r |
102 | </condition>\r |
103 | <condition property="apk-builder" value="${android-tools}/apkbuilder.bat" else="${android-tools}/apkbuilder">\r |
104 | <os family="windows" />\r |
105 | </condition>\r |
106 | \r |
107 | <condition property="apk-builder" value="${android-tools}/apkbuilder.bat" else="${android-tools}/apkbuilder">\r |
108 | <os family="windows" />\r |
109 | </condition>\r |
110 | \r |
111 | <condition property="android-jar" value="${sdk-folder}\android.jar" else="${sdk-folder}/android.jar">\r |
112 | <os family="windows" />\r |
113 | </condition>\r |
114 | \r |
115 | <!-- Rules -->\r |
116 | \r |
117 | <!-- Create the output directories if they don't exist yet. -->\r |
118 | <target name="dirs">\r |
119 | <mkdir dir="${outdir}" />\r |
120 | <delete dir="${outdir-classes}" />\r |
121 | <mkdir dir="${outdir-classes}" />\r |
122 | </target>\r |
123 | \r |
124 | <target name="clear_layout">\r |
125 | <echo>purging .bak files </echo>\r |
126 | <delete>\r |
127 | <fileset dir="." includes="**/*.bak" />\r |
128 | </delete>\r |
129 | </target>\r |
130 | \r |
131 | <!-- Generate the R.java file for this project's resources. -->\r |
132 | <target name="resource-src" depends="dirs">\r |
133 | <echo>Generating R.java / Manifest.java from the resources...</echo>\r |
134 | <exec executable="${aapt}" failonerror="true">\r |
135 | <arg value="package" />\r |
136 | <arg value="-m" />\r |
137 | <arg value="-J" />\r |
138 | <arg value="${outdir-r}" />\r |
139 | <arg value="-M" />\r |
140 | <arg value="AndroidManifest.xml" />\r |
141 | <arg value="-S" />\r |
142 | <arg value="${resource-dir}" />\r |
143 | <arg value="-I" />\r |
144 | <arg value="${android-jar}" />\r |
145 | </exec>\r |
146 | </target>\r |
147 | \r |
148 | <!-- Generate java classes from .aidl files. -->\r |
149 | <target name="aidl" depends="dirs">\r |
150 | <echo>Compiling aidl files into Java classes...</echo>\r |
151 | <apply executable="${aidl}" failonerror="true">\r |
152 | <arg value="-p${android-framework}" />\r |
153 | <arg value="-I${srcdir}" />\r |
154 | <fileset dir="${srcdir}">\r |
155 | <include name="**/*.aidl" />\r |
156 | </fileset>\r |
157 | </apply>\r |
158 | </target>\r |
159 | \r |
160 | <!-- Compile this project's .java files into .class files. -->\r |
161 | <target name="compile" depends="dirs, resource-src, aidl">\r |
162 | <javac encoding="ascii" target="1.5" debug="true" extdirs="" srcdir="." destdir="${outdir-classes}" bootclasspath="${android-jar}">\r |
163 | <classpath>\r |
164 | <fileset dir="${external-libs}" includes="*.jar" />\r |
165 | </classpath>\r |
166 | </javac>\r |
167 | </target>\r |
168 | \r |
169 | <!-- Convert this project's .class files into .dex files. -->\r |
170 | <target name="dex" depends="compile">\r |
171 | <echo>Converting compiled files and external libraries into ${outdir}/${dex-file}...</echo>\r |
172 | <apply executable="${dx}" failonerror="true" parallel="true">\r |
173 | <arg value="--dex" />\r |
174 | <arg value="--output=${intermediate-dex-ospath}" />\r |
175 | <arg path="${outdir-classes-ospath}" />\r |
176 | <fileset dir="${external-libs}" includes="*.jar" />\r |
177 | </apply>\r |
178 | </target>\r |
179 | \r |
180 | <!-- Put the project's resources into the output package file. -->\r |
181 | <target name="package-res-and-assets">\r |
182 | <echo>Packaging resources and assets...</echo>\r |
183 | <exec executable="${aapt}" failonerror="true">\r |
184 | <arg value="package" />\r |
185 | <arg value="-f" />\r |
186 | <arg value="-M" />\r |
187 | <arg value="AndroidManifest.xml" />\r |
188 | <arg value="-S" />\r |
189 | <arg value="${resource-dir}" />\r |
190 | <arg value="-A" />\r |
191 | <arg value="${asset-dir}" />\r |
192 | <arg value="-I" />\r |
193 | <arg value="${android-jar}" />\r |
194 | <arg value="-F" />\r |
195 | <arg value="${resources-package}" />\r |
196 | </exec>\r |
197 | </target>\r |
198 | \r |
199 | <!-- Same as package-res-and-assets, but without "-A ${asset-dir}" -->\r |
200 | <target name="package-res-no-assets">\r |
201 | <echo>Packaging resources...</echo>\r |
202 | <exec executable="${aapt}" failonerror="true">\r |
203 | <arg value="package" />\r |
204 | <arg value="-f" />\r |
205 | <arg value="-M" />\r |
206 | <arg value="AndroidManifest.xml" />\r |
207 | <arg value="-S" />\r |
208 | <arg value="${resource-dir}" />\r |
209 | <!-- No assets directory -->\r |
210 | <arg value="-I" />\r |
211 | <arg value="${android-jar}" />\r |
212 | <arg value="-F" />\r |
213 | <arg value="${resources-package}" />\r |
214 | </exec>\r |
215 | </target>\r |
216 | \r |
217 | <!-- Invoke the proper target depending on whether or not\r |
218 | an assets directory is present. -->\r |
219 | <!-- TODO: find a nicer way to include the "-A ${asset-dir}" argument\r |
220 | only when the assets dir exists. -->\r |
221 | <target name="package-res">\r |
222 | <available file="${asset-dir}" type="dir" property="res-target" value="and-assets" />\r |
223 | <property name="res-target" value="no-assets" />\r |
224 | <antcall target="package-res-${res-target}" />\r |
225 | </target>\r |
226 | \r |
227 | <!-- Package the application and sign it with a debug key.\r |
228 | This is the default target when building. It is used for debug. -->\r |
229 | <target name="debug" depends="dex, package-res">\r |
230 | <echo>Packaging ${out-debug-package}, and signing it with a debug key...</echo>\r |
231 | <exec executable="${apk-builder}" failonerror="true">\r |
232 | <arg value="${out-debug-package-ospath}" />\r |
233 | <arg value="-z" />\r |
234 | <arg value="${resources-package-ospath}" />\r |
235 | <arg value="-f" />\r |
236 | <arg value="${intermediate-dex-ospath}" />\r |
237 | <arg value="-rf" />\r |
238 | <arg value="${srcdir-ospath}" />\r |
239 | <arg value="-rj" />\r |
240 | <arg value="${external-libs-ospath}" />\r |
241 | </exec>\r |
242 | </target>\r |
243 | \r |
244 | <!-- Package the application without signing it.\r |
245 | This allows for the application to be signed later with an official publishing key. -->\r |
246 | <target name="release" depends="dex, package-res">\r |
247 | <echo>Packaging ${out-unsigned-package} for release...</echo>\r |
248 | <exec executable="${apk-builder}" failonerror="true">\r |
249 | <arg value="${out-unsigned-package-ospath}" />\r |
250 | <arg value="-u" />\r |
251 | <arg value="-z" />\r |
252 | <arg value="${resources-package-ospath}" />\r |
253 | <arg value="-f" />\r |
254 | <arg value="${intermediate-dex-ospath}" />\r |
255 | <arg value="-rf" />\r |
256 | <arg value="${srcdir-ospath}" />\r |
257 | <arg value="-rj" />\r |
258 | <arg value="${external-libs-ospath}" />\r |
259 | </exec>\r |
260 | <signjar jar="${out-unsigned-package-ospath}" alias="${cert-alias}" keystore="${keystore}" storepass="${storepass}" signedjar="${out-signed-package-ospath}" />\r |
261 | </target>\r |
262 | \r |
263 | <!-- Install the package on the default emulator -->\r |
264 | <target name="install" depends="debug">\r |
265 | <echo>Installing ${out-debug-package} onto default emulator...</echo>\r |
266 | <exec executable="${adb}" failonerror="true">\r |
267 | <arg value="install" />\r |
268 | <arg value="${out-debug-package}" />\r |
269 | </exec>\r |
270 | </target>\r |
271 | \r |
272 | <target name="reinstall" depends="debug">\r |
273 | <echo>Installing ${out-debug-package} onto default emulator...</echo>\r |
274 | <exec executable="${adb}" failonerror="true">\r |
275 | <arg value="install" />\r |
276 | <arg value="-r" />\r |
277 | <arg value="${out-debug-package}" />\r |
278 | </exec>\r |
279 | </target>\r |
280 | \r |
281 | \r |
282 | <!-- Install the package on the default emulator -->\r |
283 | <target name="install-signed" depends="release">\r |
284 | <echo>Installing ${out-signed-package} onto default emulator...</echo>\r |
285 | <exec executable="${adb}" failonerror="true">\r |
286 | <arg value="install" />\r |
287 | <arg value="${out-signed-package}" />\r |
288 | </exec>\r |
289 | </target>\r |
290 | \r |
291 | <target name="reinstall-signed" depends="release">\r |
292 | <echo>Reinstalling ${out-signed-package} onto default emulator...</echo>\r |
293 | <exec executable="${adb}" failonerror="true">\r |
294 | <arg value="install" />\r |
295 | <arg value="-r" />\r |
296 | <arg value="${out-signed-package}" />\r |
297 | </exec>\r |
298 | </target>\r |
299 | \r |
300 | <!-- Uinstall the package from the default emulator -->\r |
301 | <target name="uninstall">\r |
302 | <echo>Uninstalling ${application-package} from the default emulator...</echo>\r |
303 | <exec executable="${adb}" failonerror="true">\r |
304 | <arg value="uninstall" />\r |
305 | <arg value="${application-package}" />\r |
306 | </exec>\r |
307 | </target>\r |
308 | \r |
309 | \r |
310 | \r |
311 | \r |
312 | <!-- ############### JavaDoc ####################### -->\r |
313 | <!-- Create JavaDoc -->\r |
314 | <target name="javadoc">\r |
315 | <delete dir="${docdir}" />\r |
316 | <javadoc access="public" author="true" destdir="${docdir}" nodeprecated="false" nodeprecatedlist="false" noindex="false" nonavbar="false" notree="false" source="1.6" sourcepath="${srcdir}" splitindex="true" use="true" version="true">\r |
317 | </javadoc>\r |
318 | </target>\r |
319 | \r |
320 | <!-- ############### Release source ####################### -->\r |
321 | <!-- Copy to source release -->\r |
322 | <target name="release-source">\r |
323 | <delete dir="${releasedir}"/>\r |
324 | <mkdir dir="${releasedir}" />\r |
325 | <copy todir="${out-release-source-ospath}">\r |
326 | <fileset dir=".">\r |
327 | <exclude name="**/bin/**" />\r |
328 | <exclude name="**/doc/**" />\r |
329 | <exclude name="**/release/**" />\r |
330 | <exclude name="**/tmp/**" />\r |
331 | <exclude name="**/.svn" />\r |
332 | <exclude name="**/build-private.properties" />\r |
333 | </fileset>\r |
334 | </copy>\r |
335 | <zip destfile="${out-release-source-ospath}.zip">\r |
336 | <zipfileset dir="${out-release-source-ospath}" prefix="${ant.project.name}-source-${version}"/>\r |
337 | </zip>\r |
338 | <delete dir="${out-release-source-ospath}"/>\r |
339 | </target>\r |
340 | \r |
341 | <!-- ############ Convencience target ############## -->\r |
342 | <target name="all" depends="debug, javadoc" />\r |
343 | \r |
344 | </project>\r |