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