<?xml version="1.0" encoding="UTF-8"?> <project name="android_rules" default="debug"> <!-- This rules file is meant to be imported by the custom Ant task: com.android.ant.SetupTask The following properties are put in place by the importing task: android.jar, android.aidl, aapt, aidl, and dx Additionnaly, the task sets up the following classpath reference: android.target.classpath This is used by the compiler task as the boot classpath. --> <!-- Custom tasks --> <taskdef name="aaptexec" classname="com.android.ant.AaptExecLoopTask" classpathref="android.antlibs" /> <taskdef name="xpath" classname="com.android.ant.XPathTask" classpathref="android.antlibs" /> <!-- Properties --> <!-- Tells adb which device to target. You can change this from the command line by invoking "ant -Dadb.device.arg=-d" for device "ant -Dadb.device.arg=-e" for the emulator. --> <property name="adb.device.arg" value="" /> <property name="android.tools.dir" location="${sdk.dir}/tools" /> <!-- Name of the application package extracted from manifest file --> <xpath input="AndroidManifest.xml" expression="/manifest/@package" output="manifest.package" /> <!-- Input directories --> <property name="source.dir" value="src" /> <property name="source.absolute.dir" location="${source.dir}" /> <property name="gen.dir" value="gen" /> <property name="gen.absolute.dir" location="${gen.dir}" /> <property name="resource.dir" value="res" /> <property name="resource.absolute.dir" location="${resource.dir}" /> <property name="asset.dir" value="assets" /> <property name="asset.absolute.dir" location="${asset.dir}" /> <!-- Directory for the third party java libraries --> <property name="external.libs.dir" value="libs" /> <property name="external.libs.absolute.dir" location="${external.libs.dir}" /> <!-- Directory for the native libraries --> <property name="native.libs.dir" value="libs" /> <property name="native.libs.absolute.dir" location="${native.libs.dir}" /> <!-- Output directories --> <property name="out.dir" value="bin" /> <property name="out.absolute.dir" location="${out.dir}" /> <property name="out.classes.dir" value="${out.absolute.dir}/classes" /> <property name="out.classes.absolute.dir" location="${out.classes.dir}" /> <!-- Verbosity --> <property name="verbose" value="false" /> <!-- This is needed by emma as it uses multilevel verbosity instead of simple 'true' or 'false' The property 'verbosity' is not user configurable and depends exclusively on 'verbose' value.--> <condition property="verbosity" value="verbose" else="quiet"> <istrue value="${verbose}" /> </condition> <!-- Tools --> <condition property="exe" value=".exe" else=""><os family="windows" /></condition> <!-- Emma configuration --> <property name="emma.dir" value="${sdk.dir}/tools/lib" /> <path id="emma.lib"> <pathelement location="${emma.dir}/emma.jar" /> <pathelement location="${emma.dir}/emma_ant.jar" /> </path> <taskdef resource="emma_ant.properties" classpathref="emma.lib" /> <!-- End of emma configuration --> <!-- Rules --> <!-- Creates the output directories if they don't exist yet. --> <target name="-dirs"> <echo>Creating output directories if needed...</echo> <mkdir dir="${resource.absolute.dir}" /> <mkdir dir="${external.libs.absolute.dir}" /> <mkdir dir="${gen.absolute.dir}" /> <mkdir dir="${out.absolute.dir}" /> <mkdir dir="${out.classes.absolute.dir}" /> </target> <!-- Generates the R.java file for this project's resources. --> <target name="-resource-src" depends="-dirs"> <echo>Generating R.java / Manifest.java from the resources...</echo> <aaptexec executable="${aapt}" command="package" verbose="${verbose}" manifest="AndroidManifest.xml" androidjar="${android.jar}" rfolder="${gen.absolute.dir}"> <res path="${resource.absolute.dir}" /> </aaptexec> </target> <!-- Compiles this project's .java files into .class files. --> <target name="compile" depends="-resource-src" description="Compiles project's .java files into .class files"> <!-- If android rules are used for a test project, its classpath should include tested project's location --> <condition property="extensible.classpath" value="${tested.project.absolute.dir}/bin/classes" else="."> <isset property="tested.project.absolute.dir" /> </condition> <javac encoding="ascii" target="1.5" debug="true" extdirs="" destdir="${out.classes.absolute.dir}" bootclasspathref="android.target.classpath" verbose="${verbose}" classpath="${extensible.classpath}"> <src path="${source.absolute.dir}" /> <src path="${gen.absolute.dir}" /> <classpath> <fileset dir="${external.libs.absolute.dir}" includes="*.jar" /> </classpath> </javac> </target> <target name="clean" description="Removes output files created by other targets."> <delete dir="${out.absolute.dir}" verbose="${verbose}" /> <delete dir="${gen.absolute.dir}" verbose="${verbose}" /> </target> <target name="help"> <!-- displays starts at col 13 |13 80| --> <echo>Android Ant Build. Available targets:</echo> <echo> help: Displays this help.</echo> <echo> clean: Removes output files created by other targets.</echo> <echo> compile: Compiles project's .java files into .class files.</echo> </target> </project>