aboutsummaryrefslogtreecommitdiffstats
path: root/files
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2010-09-02 14:59:38 -0700
committerXavier Ducrohet <xav@android.com>2010-09-02 15:35:06 -0700
commit5af43ecb4e1621cb55cdda4074c11cd9009ae2b2 (patch)
treebb4474c4150da16c7272af0668e413212b1011b1 /files
parentdc251ccc3b44c65c30c1aedeef8d8aa486fa5b89 (diff)
downloadsdk-5af43ecb4e1621cb55cdda4074c11cd9009ae2b2.zip
sdk-5af43ecb4e1621cb55cdda4074c11cd9009ae2b2.tar.gz
sdk-5af43ecb4e1621cb55cdda4074c11cd9009ae2b2.tar.bz2
Support for debug build in Ant.
"ant debug" now automatically insert debuggable=true in the manifest. Also cleaned up a lot of the Ant stuff (versioned Ant rules, support for importing different rules files based on compatibility computation). This is rendered moot with our new single aapt executable. The ant rules will now evolve alongside aapt, and there will not be mismatch between the two. Change-Id: Iaf309f40e6ab4a0204dfbdb428cfb569bf5ca3b3
Diffstat (limited to 'files')
-rw-r--r--files/ant/ant_lib_rules_r2.xml141
-rw-r--r--files/ant/ant_rules_r1.xml452
-rw-r--r--files/ant/ant_rules_r2.xml459
-rw-r--r--files/ant/ant_test_rules_r1.xml104
-rw-r--r--files/ant/ant_test_rules_r2.xml104
-rw-r--r--files/ant/lib_rules.xml (renamed from files/ant/ant_lib_rules_r3.xml)0
-rw-r--r--files/ant/main_rules.xml (renamed from files/ant/ant_rules_r3.xml)35
-rw-r--r--files/ant/test_rules.xml (renamed from files/ant/ant_test_rules_r3.xml)0
-rw-r--r--files/sdk.properties2
9 files changed, 22 insertions, 1275 deletions
diff --git a/files/ant/ant_lib_rules_r2.xml b/files/ant/ant_lib_rules_r2.xml
deleted file mode 100644
index c207308..0000000
--- a/files/ant/ant_lib_rules_r2.xml
+++ /dev/null
@@ -1,141 +0,0 @@
-<?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>
diff --git a/files/ant/ant_rules_r1.xml b/files/ant/ant_rules_r1.xml
deleted file mode 100644
index 9ff30f3..0000000
--- a/files/ant/ant_rules_r1.xml
+++ /dev/null
@@ -1,452 +0,0 @@
-<?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.AndroidInitTask
-
- 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="apkbuilder"
- classname="com.android.ant.ApkBuilderTask"
- 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}" />
-
- <!-- Intermediate files -->
- <property name="dex.file.name" value="classes.dex" />
- <property name="intermediate.dex.file" location="${out.absolute.dir}/${dex.file.name}" />
-
- <!-- The final package file to generate -->
- <property name="out.debug.unaligned.package"
- location="${out.absolute.dir}/${ant.project.name}-debug-unaligned.apk" />
- <property name="out.debug.package"
- location="${out.absolute.dir}/${ant.project.name}-debug.apk" />
- <property name="out.unsigned.package"
- location="${out.absolute.dir}/${ant.project.name}-unsigned.apk" />
- <property name="out.unaligned.package"
- location="${out.absolute.dir}/${ant.project.name}-unaligned.apk" />
- <property name="out.release.package"
- location="${out.absolute.dir}/${ant.project.name}-release.apk" />
-
- <!-- 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>
- <!-- This is needed to switch verbosity of zipalign and aapt. Depends exclusively on 'verbose'
- -->
- <condition property="v.option" value="-v" else="">
- <istrue value="${verbose}" />
- </condition>
- <!-- This is needed to switch verbosity of dx. Depends exclusively on 'verbose' -->
- <condition property="verbose.option" value="--verbose" else="">
- <istrue value="${verbose}" />
- </condition>
-
- <!-- Tools -->
- <condition property="exe" value=".exe" else=""><os family="windows" /></condition>
- <property name="adb" location="${android.tools.dir}/adb${exe}" />
- <property name="zipalign" location="${android.tools.dir}/zipalign${exe}" />
-
- <!-- 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 -->
-
- <!-- Macros -->
-
- <!-- Configurable macro, which allows to pass as parameters output directory,
- output dex filename and external libraries to dex (optional) -->
- <macrodef name="dex-helper">
- <element name="external-libs" optional="yes" />
- <element name="extra-parameters" optional="yes" />
- <sequential>
- <echo>Converting compiled files and external libraries into ${intermediate.dex.file}...
- </echo>
- <apply executable="${dx}" failonerror="true" parallel="true">
- <arg value="--dex" />
- <arg value="--output=${intermediate.dex.file}" />
- <extra-parameters />
- <arg line="${verbose.option}" />
- <arg path="${out.classes.absolute.dir}" />
- <fileset dir="${external.libs.absolute.dir}" includes="*.jar" />
- <external-libs />
- </apply>
- </sequential>
- </macrodef>
-
- <!-- This is macro that enable passing variable list of external jar files to ApkBuilder
- Example of use:
- <package-helper>
- <extra-jars>
- <jarfolder path="my_jars" />
- <jarfile path="foo/bar.jar" />
- <jarfolder path="your_jars" />
- </extra-jars>
- </package-helper> -->
- <macrodef name="package-helper">
- <attribute name="sign.package" />
- <element name="extra-jars" optional="yes" />
- <sequential>
- <apkbuilder
- outfolder="${out.absolute.dir}"
- basename="${ant.project.name}"
- signed="@{sign.package}"
- verbose="${verbose}">
- <file path="${intermediate.dex.file}" />
- <sourcefolder path="${source.absolute.dir}" />
- <nativefolder path="${native.libs.absolute.dir}" />
- <jarfolder path="${external.libs.absolute.dir}" />
- <extra-jars/>
- </apkbuilder>
- </sequential>
- </macrodef>
-
- <!-- This is macro which zipaligns in.package and outputs it to out.package. Used by targets
- debug, -debug-with-emma and release.-->
- <macrodef name="zipalign-helper">
- <attribute name="in.package" />
- <attribute name="out.package" />
- <sequential>
- <echo>Running zip align on final apk...</echo>
- <exec executable="${zipalign}" failonerror="true">
- <arg line="${v.option}" />
- <arg value="-f" />
- <arg value="4" />
- <arg path="@{in.package}" />
- <arg path="@{out.package}" />
- </exec>
- </sequential>
- </macrodef>
-
- <!-- This is macro used only for sharing code among two targets, -install and
- -install-with-emma which do exactly the same but differ in dependencies -->
- <macrodef name="install-helper">
- <sequential>
- <echo>Installing ${out.debug.package} onto default emulator or device...</echo>
- <exec executable="${adb}" failonerror="true">
- <arg line="${adb.device.arg}" />
- <arg value="install" />
- <arg value="-r" />
- <arg path="${out.debug.package}" />
- </exec>
- </sequential>
- </macrodef>
-
- <!-- 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>
- <exec executable="${aapt}" failonerror="true">
- <arg value="package" />
- <arg line="${v.option}" />
- <arg value="-m" />
- <arg value="-J" />
- <arg path="${gen.absolute.dir}" />
- <arg value="-M" />
- <arg path="AndroidManifest.xml" />
- <arg value="-S" />
- <arg path="${resource.absolute.dir}" />
- <arg value="-I" />
- <arg path="${android.jar}" />
- </exec>
- </target>
-
- <!-- Generates java classes from .aidl files. -->
- <target name="-aidl" depends="-dirs">
- <echo>Compiling aidl files into Java classes...</echo>
- <apply executable="${aidl}" failonerror="true">
- <arg value="-p${android.aidl}" />
- <arg value="-I${source.absolute.dir}" />
- <arg value="-o${gen.absolute.dir}" />
- <fileset dir="${source.absolute.dir}">
- <include name="**/*.aidl" />
- </fileset>
- </apply>
- </target>
-
- <!-- Compiles this project's .java files into .class files. -->
- <target name="compile" depends="-resource-src, -aidl"
- 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>
- <condition property="extensible.libs.classpath"
- value="${tested.project.absolute.dir}/libs" else="./libs">
- <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" />
- <fileset dir="${extensible.libs.classpath}" includes="*.jar" />
- </classpath>
- </javac>
- </target>
-
- <!-- Converts this project's .class files into .dex files -->
- <target name="-dex" depends="compile">
- <dex-helper />
- </target>
-
- <!-- Puts the project's resources into the output package file
- This actually can create multiple resource package in case
- Some custom apk with specific configuration have been
- declared in default.properties.
- -->
- <target name="-package-resources">
- <echo>Packaging resources</echo>
- <aaptexec executable="${aapt}"
- command="package"
- manifest="AndroidManifest.xml"
- resources="${resource.absolute.dir}"
- assets="${asset.absolute.dir}"
- androidjar="${android.jar}"
- outfolder="${out.absolute.dir}"
- basename="${ant.project.name}" />
- </target>
-
- <!-- Packages the application and sign it with a debug key. -->
- <target name="-package-debug-sign" depends="-dex, -package-resources">
- <package-helper sign.package="true" />
- </target>
-
- <!-- Packages the application without signing it. -->
- <target name="-package-no-sign" depends="-dex, -package-resources">
- <package-helper sign.package="false" />
- </target>
-
- <target name="-compile-tested-if-test" if="tested.project.dir" unless="do.not.compile.again">
- <subant target="compile">
- <fileset dir="${tested.project.absolute.dir}" includes="build.xml" />
- </subant>
- </target>
-
- <!-- Builds debug output package, provided all the necessary files are already dexed -->
- <target name="debug" depends="-compile-tested-if-test, -package-debug-sign"
- description="Builds the application and signs it with a debug key.">
- <zipalign-helper in.package="${out.debug.unaligned.package}"
- out.package="${out.debug.package}" />
- <echo>Debug Package: ${out.debug.package}</echo>
- </target>
-
- <target name="-release-check">
- <condition property="release.sign">
- <and>
- <isset property="key.store" />
- <isset property="key.alias" />
- </and>
- </condition>
- </target>
-
- <target name="-release-nosign" depends="-release-check" unless="release.sign">
- <echo>No key.store and key.alias properties found in build.properties.</echo>
- <echo>Please sign ${out.unsigned.package} manually</echo>
- <echo>and run zipalign from the Android SDK tools.</echo>
- </target>
-
- <target name="release" depends="-package-no-sign, -release-nosign" if="release.sign"
- description="Builds the application. The generated apk file must be signed before
- it is published.">
- <!-- Gets passwords -->
- <input
- message="Please enter keystore password (store:${key.store}):"
- addproperty="key.store.password" />
- <input
- message="Please enter password for alias '${key.alias}':"
- addproperty="key.alias.password" />
-
- <!-- Signs the APK -->
- <echo>Signing final apk...</echo>
- <signjar
- jar="${out.unsigned.package}"
- signedjar="${out.unaligned.package}"
- keystore="${key.store}"
- storepass="${key.store.password}"
- alias="${key.alias}"
- keypass="${key.alias.password}"
- verbose="${verbose}" />
-
- <!-- Zip aligns the APK -->
- <zipalign-helper in.package="${out.unaligned.package}"
- out.package="${out.release.package}" />
- <echo>Release Package: ${out.release.package}</echo>
- </target>
-
- <target name="install" depends="debug"
- description="Installs/reinstalls the debug package onto a running
- emulator or device. If the application was previously installed,
- the signatures must match." >
- <install-helper />
- </target>
-
- <target name="-uninstall-check">
- <condition property="uninstall.run">
- <isset property="manifest.package" />
- </condition>
- </target>
-
- <target name="-uninstall-error" depends="-uninstall-check" unless="uninstall.run">
- <echo>Unable to run 'ant uninstall', manifest.package property is not defined.
- </echo>
- </target>
-
- <!-- Uninstalls the package from the default emulator/device -->
- <target name="uninstall" depends="-uninstall-error" if="uninstall.run"
- description="Uninstalls the application from a running emulator or device.">
- <echo>Uninstalling ${manifest.package} from the default emulator or device...</echo>
- <exec executable="${adb}" failonerror="true">
- <arg line="${adb.device.arg}" />
- <arg value="uninstall" />
- <arg value="${manifest.package}" />
- </exec>
- </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>
-
- <!-- Targets for code-coverage measurement purposes, invoked from external file -->
-
- <!-- Emma-instruments tested project classes (compiles the tested project if necessary)
- and writes instrumented classes to ${instrumentation.absolute.dir}/classes -->
- <target name="-emma-instrument" depends="compile">
- <echo>Instrumenting classes from ${out.absolute.dir}/classes...</echo>
- <!-- It only instruments class files, not any external libs -->
- <emma enabled="true">
- <instr verbosity="${verbosity}"
- mode="overwrite"
- instrpath="${out.absolute.dir}/classes"
- outdir="${out.absolute.dir}/classes">
- </instr>
- <!-- TODO: exclusion filters on R*.class and allowing custom exclusion from
- user defined file -->
- </emma>
- </target>
-
- <target name="-dex-instrumented" depends="-emma-instrument">
- <dex-helper>
- <extra-parameters>
- <arg value="--no-locals" />
- </extra-parameters>
- <external-libs>
- <fileset file="${emma.dir}/emma_device.jar" />
- </external-libs>
- </dex-helper>
- </target>
-
- <!-- Invoked from external files for code coverage purposes -->
- <target name="-package-with-emma" depends="-dex-instrumented, -package-resources">
- <package-helper sign.package="true">
- <extra-jars>
- <!-- Injected from external file -->
- <jarfile path="${emma.dir}/emma_device.jar" />
- </extra-jars>
- </package-helper>
- </target>
-
- <target name="-debug-with-emma" depends="-package-with-emma">
- <zipalign-helper in.package="${out.debug.unaligned.package}"
- out.package="${out.debug.package}" />
- </target>
-
- <target name="-install-with-emma" depends="-debug-with-emma">
- <install-helper />
- </target>
-
- <!-- End of targets for code-coverage measurement purposes -->
-
- <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>
- <echo> debug: Builds the application and signs it with a debug key.</echo>
- <echo> release: Builds the application. The generated apk file must be</echo>
- <echo> signed before it is published.</echo>
- <echo> install: Installs/reinstalls the debug package onto a running</echo>
- <echo> emulator or device.</echo>
- <echo> If the application was previously installed, the</echo>
- <echo> signatures must match.</echo>
- <echo> uninstall: Uninstalls the application from a running emulator or</echo>
- <echo> device.</echo>
- </target>
-</project>
diff --git a/files/ant/ant_rules_r2.xml b/files/ant/ant_rules_r2.xml
deleted file mode 100644
index ffd7c41..0000000
--- a/files/ant/ant_rules_r2.xml
+++ /dev/null
@@ -1,459 +0,0 @@
-<?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="apkbuilder"
- classname="com.android.ant.ApkBuilderTask"
- 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" />
- <!-- Value of the debuggable attribute (Application node) extracted from manifest file -->
- <xpath input="AndroidManifest.xml" expression="/manifest/application/@android:debuggable"
- output="manifest.debuggable" default="false"/>
-
- <!-- 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}" />
-
- <!-- Intermediate files -->
- <property name="dex.file.name" value="classes.dex" />
- <property name="intermediate.dex.file" location="${out.absolute.dir}/${dex.file.name}" />
-
- <!-- The final package file to generate -->
- <property name="out.debug.unaligned.package"
- location="${out.absolute.dir}/${ant.project.name}-debug-unaligned.apk" />
- <property name="out.debug.package"
- location="${out.absolute.dir}/${ant.project.name}-debug.apk" />
- <property name="out.unsigned.package"
- location="${out.absolute.dir}/${ant.project.name}-unsigned.apk" />
- <property name="out.unaligned.package"
- location="${out.absolute.dir}/${ant.project.name}-unaligned.apk" />
- <property name="out.release.package"
- location="${out.absolute.dir}/${ant.project.name}-release.apk" />
-
- <!-- 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>
- <!-- This is needed to switch verbosity of zipalign. Depends exclusively on 'verbose'
- -->
- <condition property="v.option" value="-v" else="">
- <istrue value="${verbose}" />
- </condition>
- <!-- This is needed to switch verbosity of dx. Depends exclusively on 'verbose' -->
- <condition property="verbose.option" value="--verbose" else="">
- <istrue value="${verbose}" />
- </condition>
-
- <!-- Tools -->
- <condition property="exe" value=".exe" else=""><os family="windows" /></condition>
- <property name="adb" location="${android.tools.dir}/adb${exe}" />
- <property name="zipalign" location="${android.tools.dir}/zipalign${exe}" />
-
- <!-- 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 -->
-
- <!-- Macros -->
-
- <!-- Configurable macro, which allows to pass as parameters output directory,
- output dex filename and external libraries to dex (optional) -->
- <macrodef name="dex-helper">
- <element name="external-libs" optional="yes" />
- <element name="extra-parameters" optional="yes" />
- <sequential>
- <echo>Converting compiled files and external libraries into ${intermediate.dex.file}...</echo>
- <apply executable="${dx}" failonerror="true" parallel="true">
- <arg value="--dex" />
- <arg value="--output=${intermediate.dex.file}" />
- <extra-parameters />
- <arg line="${verbose.option}" />
- <arg path="${out.classes.absolute.dir}" />
- <fileset dir="${external.libs.absolute.dir}" includes="*.jar" />
- <path refid="android.libraries.jars" />
- <external-libs />
- </apply>
- </sequential>
- </macrodef>
-
- <!-- This is macro that enable passing variable list of external jar files to ApkBuilder
- Example of use:
- <package-helper sign.package="true">
- <extra-jars>
- <jarfolder path="my_jars" />
- <jarfile path="foo/bar.jar" />
- <jarfolder path="your_jars" />
- </extra-jars>
- </package-helper> -->
- <macrodef name="package-helper">
- <attribute name="sign.package" />
- <element name="extra-jars" optional="yes" />
- <sequential>
- <apkbuilder
- outfolder="${out.absolute.dir}"
- basename="${ant.project.name}"
- signed="@{sign.package}"
- debug="${manifest.debuggable}"
- verbose="${verbose}">
- <file path="${intermediate.dex.file}" />
- <sourcefolder path="${source.absolute.dir}" />
- <sourcefolder refid="android.libraries.src" />
- <jarfolder path="${external.libs.absolute.dir}" />
- <jarfolder refid="android.libraries.libs" />
- <nativefolder path="${native.libs.absolute.dir}" />
- <nativefolder refid="android.libraries.libs" />
- <extra-jars/>
- </apkbuilder>
- </sequential>
- </macrodef>
-
- <!-- This is macro which zipaligns in.package and outputs it to out.package. Used by targets
- debug, -debug-with-emma and release.-->
- <macrodef name="zipalign-helper">
- <attribute name="in.package" />
- <attribute name="out.package" />
- <sequential>
- <echo>Running zip align on final apk...</echo>
- <exec executable="${zipalign}" failonerror="true">
- <arg line="${v.option}" />
- <arg value="-f" />
- <arg value="4" />
- <arg path="@{in.package}" />
- <arg path="@{out.package}" />
- </exec>
- </sequential>
- </macrodef>
-
- <!-- This is macro used only for sharing code among two targets, -install and
- -install-with-emma which do exactly the same but differ in dependencies -->
- <macrodef name="install-helper">
- <sequential>
- <echo>Installing ${out.debug.package} onto default emulator or device...</echo>
- <exec executable="${adb}" failonerror="true">
- <arg line="${adb.device.arg}" />
- <arg value="install" />
- <arg value="-r" />
- <arg path="${out.debug.package}" />
- </exec>
- </sequential>
- </macrodef>
-
- <!-- 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>
-
- <!-- Generates java classes from .aidl files. -->
- <target name="-aidl" depends="-dirs">
- <echo>Compiling aidl files into Java classes...</echo>
- <apply executable="${aidl}" failonerror="true">
- <arg value="-p${android.aidl}" />
- <arg value="-I${source.absolute.dir}" />
- <arg value="-o${gen.absolute.dir}" />
- <fileset dir="${source.absolute.dir}">
- <include name="**/*.aidl" />
- </fileset>
- </apply>
- </target>
-
- <!-- Compiles this project's .java files into .class files. -->
- <target name="compile" depends="-resource-src, -aidl"
- 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>
- <condition property="extensible.libs.classpath"
- value="${tested.project.absolute.dir}/libs" else="./libs">
- <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}"
- classpathref="android.libraries.jars">
- <src path="${source.absolute.dir}" />
- <src path="${gen.absolute.dir}" />
- <src refid="android.libraries.src" />
- <classpath>
- <fileset dir="${external.libs.absolute.dir}" includes="*.jar" />
- <fileset dir="${extensible.libs.classpath}" includes="*.jar" />
- </classpath>
- </javac>
- </target>
-
- <!-- Converts this project's .class files into .dex files -->
- <target name="-dex" depends="compile">
- <dex-helper />
- </target>
-
- <!-- Puts the project's resources into the output package file
- This actually can create multiple resource package in case
- Some custom apk with specific configuration have been
- declared in default.properties.
- -->
- <target name="-package-resources">
- <echo>Packaging resources</echo>
- <aaptexec executable="${aapt}"
- command="package"
- manifest="AndroidManifest.xml"
- assets="${asset.absolute.dir}"
- androidjar="${android.jar}"
- apkfolder="${out.absolute.dir}"
- apkbasename="${ant.project.name}">
- <res path="${resource.absolute.dir}" />
- <!-- <nocompress /> forces no compression on any files in assets or res/raw -->
- <!-- <nocompress extension="xml" /> forces no compression on specific file extensions in assets and res/raw -->
- </aaptexec>
- </target>
-
- <!-- Packages the application and sign it with a debug key. -->
- <target name="-package-debug-sign" depends="-dex, -package-resources">
- <package-helper sign.package="true" />
- </target>
-
- <!-- Packages the application without signing it. -->
- <target name="-package-release" depends="-dex, -package-resources">
- <package-helper sign.package="false" />
- </target>
-
- <target name="-compile-tested-if-test" if="tested.project.dir" unless="do.not.compile.again">
- <subant target="compile">
- <fileset dir="${tested.project.absolute.dir}" includes="build.xml" />
- </subant>
- </target>
-
- <!-- Builds debug output package, provided all the necessary files are already dexed -->
- <target name="debug" depends="-compile-tested-if-test, -package-debug-sign"
- description="Builds the application and signs it with a debug key.">
- <zipalign-helper in.package="${out.debug.unaligned.package}"
- out.package="${out.debug.package}" />
- <echo>Debug Package: ${out.debug.package}</echo>
- </target>
-
- <target name="-release-check">
- <condition property="release.sign">
- <and>
- <isset property="key.store" />
- <isset property="key.alias" />
- </and>
- </condition>
- </target>
-
- <target name="-release-nosign" depends="-release-check" unless="release.sign">
- <echo>No key.store and key.alias properties found in build.properties.</echo>
- <echo>Please sign ${out.unsigned.package} manually</echo>
- <echo>and run zipalign from the Android SDK tools.</echo>
- </target>
-
- <target name="release" depends="-package-release, -release-nosign" if="release.sign"
- description="Builds the application. The generated apk file must be signed before
- it is published.">
- <!-- Gets passwords -->
- <input
- message="Please enter keystore password (store:${key.store}):"
- addproperty="key.store.password" />
- <input
- message="Please enter password for alias '${key.alias}':"
- addproperty="key.alias.password" />
-
- <!-- Signs the APK -->
- <echo>Signing final apk...</echo>
- <signjar
- jar="${out.unsigned.package}"
- signedjar="${out.unaligned.package}"
- keystore="${key.store}"
- storepass="${key.store.password}"
- alias="${key.alias}"
- keypass="${key.alias.password}"
- verbose="${verbose}" />
-
- <!-- Zip aligns the APK -->
- <zipalign-helper in.package="${out.unaligned.package}"
- out.package="${out.release.package}" />
- <echo>Release Package: ${out.release.package}</echo>
- </target>
-
- <target name="install" depends="debug"
- description="Installs/reinstalls the debug package onto a running
- emulator or device. If the application was previously installed,
- the signatures must match." >
- <install-helper />
- </target>
-
- <target name="-uninstall-check">
- <condition property="uninstall.run">
- <isset property="manifest.package" />
- </condition>
- </target>
-
- <target name="-uninstall-error" depends="-uninstall-check" unless="uninstall.run">
- <echo>Unable to run 'ant uninstall', manifest.package property is not defined.
- </echo>
- </target>
-
- <!-- Uninstalls the package from the default emulator/device -->
- <target name="uninstall" depends="-uninstall-error" if="uninstall.run"
- description="Uninstalls the application from a running emulator or device.">
- <echo>Uninstalling ${manifest.package} from the default emulator or device...</echo>
- <exec executable="${adb}" failonerror="true">
- <arg line="${adb.device.arg}" />
- <arg value="uninstall" />
- <arg value="${manifest.package}" />
- </exec>
- </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>
-
- <!-- Targets for code-coverage measurement purposes, invoked from external file -->
-
- <!-- Emma-instruments tested project classes (compiles the tested project if necessary)
- and writes instrumented classes to ${instrumentation.absolute.dir}/classes -->
- <target name="-emma-instrument" depends="compile">
- <echo>Instrumenting classes from ${out.absolute.dir}/classes...</echo>
- <!-- It only instruments class files, not any external libs -->
- <emma enabled="true">
- <instr verbosity="${verbosity}"
- mode="overwrite"
- instrpath="${out.absolute.dir}/classes"
- outdir="${out.absolute.dir}/classes">
- </instr>
- <!-- TODO: exclusion filters on R*.class and allowing custom exclusion from
- user defined file -->
- </emma>
- </target>
-
- <target name="-dex-instrumented" depends="-emma-instrument">
- <dex-helper>
- <extra-parameters>
- <arg value="--no-locals" />
- </extra-parameters>
- <external-libs>
- <fileset file="${emma.dir}/emma_device.jar" />
- </external-libs>
- </dex-helper>
- </target>
-
- <!-- Invoked from external files for code coverage purposes -->
- <target name="-package-with-emma" depends="-dex-instrumented, -package-resources">
- <package-helper sign.package="true">
- <extra-jars>
- <!-- Injected from external file -->
- <jarfile path="${emma.dir}/emma_device.jar" />
- </extra-jars>
- </package-helper>
- </target>
-
- <target name="-debug-with-emma" depends="-package-with-emma">
- <zipalign-helper in.package="${out.debug.unaligned.package}"
- out.package="${out.debug.package}" />
- </target>
-
- <target name="-install-with-emma" depends="-debug-with-emma">
- <install-helper />
- </target>
-
- <!-- End of targets for code-coverage measurement purposes -->
-
- <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>
- <echo> debug: Builds the application and signs it with a debug key.</echo>
- <echo> release: Builds the application. The generated apk file must be</echo>
- <echo> signed before it is published.</echo>
- <echo> install: Installs/reinstalls the debug package onto a running</echo>
- <echo> emulator or device.</echo>
- <echo> If the application was previously installed, the</echo>
- <echo> signatures must match.</echo>
- <echo> uninstall: Uninstalls the application from a running emulator or</echo>
- <echo> device.</echo>
- </target>
-</project>
diff --git a/files/ant/ant_test_rules_r1.xml b/files/ant/ant_test_rules_r1.xml
deleted file mode 100644
index 78503ae..0000000
--- a/files/ant/ant_test_rules_r1.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="android_test_rules" default="run-tests">
-
- <import file="android_rules.xml" />
-
- <property name="tested.project.absolute.dir" location="${tested.project.dir}" />
- <property name="instrumentation.dir" value="instrumented" />
- <property name="instrumentation.absolute.dir" location="${instrumentation.dir}" />
-
- <property name="test.runner" value="android.test.InstrumentationTestRunner" />
- <!-- Application package of the tested project extracted from its manifest file -->
- <xpath input="${tested.project.absolute.dir}/AndroidManifest.xml"
- expression="/manifest/@package" output="tested.manifest.package" />
-
- <!-- TODO: make it more configurable in the next CL's - now it is default for auto-generated
- project -->
- <property name="emma.dump.file"
- value="/data/data/${tested.manifest.package}/files/coverage.ec" />
-
- <macrodef name="run-tests-helper">
- <attribute name="emma.enabled" default="false" />
- <element name="extra-instrument-args" optional="yes" />
- <sequential>
- <echo>Running tests ...</echo>
- <exec executable="${adb}" failonerror="true">
- <arg value="shell" />
- <arg value="am" />
- <arg value="instrument" />
- <arg value="-w" />
- <arg value="-e" />
- <arg value="coverage" />
- <arg value="@{emma.enabled}" />
- <extra-instrument-args />
- <arg value="${manifest.package}/${test.runner}" />
- </exec>
- </sequential>
- </macrodef>
-
- <!-- Invoking this target sets the value of extensible.classpath, which is being added to javac
- classpath in target 'compile' (android_rules.xml) -->
- <target name="-set-coverage-classpath">
- <property name="extensible.classpath"
- location="${instrumentation.absolute.dir}/classes" />
- </target>
-
- <!-- Ensures that tested project is installed on the device before we run the tests.
- Used for ordinary tests, without coverage measurement -->
- <target name="-install-tested-project">
- <property name="do.not.compile.again" value="true" />
- <subant target="install">
- <fileset dir="${tested.project.absolute.dir}" includes="build.xml" />
- </subant>
- </target>
-
- <target name="run-tests" depends="-install-tested-project, install"
- description="Runs tests from the package defined in test.package property">
- <run-tests-helper />
- </target>
-
- <target name="-install-instrumented">
- <property name="do.not.compile.again" value="true" />
- <subant target="-install-with-emma">
- <property name="out.absolute.dir" value="${instrumentation.absolute.dir}" />
- <fileset dir="${tested.project.absolute.dir}" includes="build.xml" />
- </subant>
- </target>
-
- <target name="coverage" depends="-set-coverage-classpath, -install-instrumented, install"
- description="Runs the tests against the instrumented code and generates
- code coverage report">
- <run-tests-helper emma.enabled="true">
- <extra-instrument-args>
- <arg value="-e" />
- <arg value="coverageFile" />
- <arg value="${emma.dump.file}" />
- </extra-instrument-args>
- </run-tests-helper>
- <echo>Downloading coverage file into project directory...</echo>
- <exec executable="${adb}" failonerror="true">
- <arg value="pull" />
- <arg value="${emma.dump.file}" />
- <arg value="coverage.ec" />
- </exec>
- <echo>Extracting coverage report...</echo>
- <emma>
- <report sourcepath="${tested.project.absolute.dir}/${source.dir}"
- verbosity="${verbosity}">
- <!-- TODO: report.dir or something like should be introduced if necessary -->
- <infileset dir=".">
- <include name="coverage.ec" />
- <include name="coverage.em" />
- </infileset>
- <!-- TODO: reports in other, indicated by user formats -->
- <html outfile="coverage.html" />
- </report>
- </emma>
- <echo>Cleaning up temporary files...</echo>
- <delete dir="${instrumentation.absolute.dir}" />
- <delete file="coverage.ec" />
- <delete file="coverage.em" />
- <echo>Saving the report file in ${basedir}/coverage/coverage.html</echo>
- </target>
-
-</project>
diff --git a/files/ant/ant_test_rules_r2.xml b/files/ant/ant_test_rules_r2.xml
deleted file mode 100644
index 00ebfea..0000000
--- a/files/ant/ant_test_rules_r2.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="android_test_rules" default="run-tests">
-
- <import file="ant_rules_r2.xml" />
-
- <property name="tested.project.absolute.dir" location="${tested.project.dir}" />
- <property name="instrumentation.dir" value="instrumented" />
- <property name="instrumentation.absolute.dir" location="${instrumentation.dir}" />
-
- <property name="test.runner" value="android.test.InstrumentationTestRunner" />
- <!-- Application package of the tested project extracted from its manifest file -->
- <xpath input="${tested.project.absolute.dir}/AndroidManifest.xml"
- expression="/manifest/@package" output="tested.manifest.package" />
-
- <!-- TODO: make it more configurable in the next CL's - now it is default for auto-generated
- project -->
- <property name="emma.dump.file"
- value="/data/data/${tested.manifest.package}/files/coverage.ec" />
-
- <macrodef name="run-tests-helper">
- <attribute name="emma.enabled" default="false" />
- <element name="extra-instrument-args" optional="yes" />
- <sequential>
- <echo>Running tests ...</echo>
- <exec executable="${adb}" failonerror="true">
- <arg value="shell" />
- <arg value="am" />
- <arg value="instrument" />
- <arg value="-w" />
- <arg value="-e" />
- <arg value="coverage" />
- <arg value="@{emma.enabled}" />
- <extra-instrument-args />
- <arg value="${manifest.package}/${test.runner}" />
- </exec>
- </sequential>
- </macrodef>
-
- <!-- Invoking this target sets the value of extensible.classpath, which is being added to javac
- classpath in target 'compile' (android_rules.xml) -->
- <target name="-set-coverage-classpath">
- <property name="extensible.classpath"
- location="${instrumentation.absolute.dir}/classes" />
- </target>
-
- <!-- Ensures that tested project is installed on the device before we run the tests.
- Used for ordinary tests, without coverage measurement -->
- <target name="-install-tested-project">
- <property name="do.not.compile.again" value="true" />
- <subant target="install">
- <fileset dir="${tested.project.absolute.dir}" includes="build.xml" />
- </subant>
- </target>
-
- <target name="run-tests" depends="-install-tested-project, install"
- description="Runs tests from the package defined in test.package property">
- <run-tests-helper />
- </target>
-
- <target name="-install-instrumented">
- <property name="do.not.compile.again" value="true" />
- <subant target="-install-with-emma">
- <property name="out.absolute.dir" value="${instrumentation.absolute.dir}" />
- <fileset dir="${tested.project.absolute.dir}" includes="build.xml" />
- </subant>
- </target>
-
- <target name="coverage" depends="-set-coverage-classpath, -install-instrumented, install"
- description="Runs the tests against the instrumented code and generates
- code coverage report">
- <run-tests-helper emma.enabled="true">
- <extra-instrument-args>
- <arg value="-e" />
- <arg value="coverageFile" />
- <arg value="${emma.dump.file}" />
- </extra-instrument-args>
- </run-tests-helper>
- <echo>Downloading coverage file into project directory...</echo>
- <exec executable="${adb}" failonerror="true">
- <arg value="pull" />
- <arg value="${emma.dump.file}" />
- <arg value="coverage.ec" />
- </exec>
- <echo>Extracting coverage report...</echo>
- <emma>
- <report sourcepath="${tested.project.absolute.dir}/${source.dir}"
- verbosity="${verbosity}">
- <!-- TODO: report.dir or something like should be introduced if necessary -->
- <infileset dir=".">
- <include name="coverage.ec" />
- <include name="coverage.em" />
- </infileset>
- <!-- TODO: reports in other, indicated by user formats -->
- <html outfile="coverage.html" />
- </report>
- </emma>
- <echo>Cleaning up temporary files...</echo>
- <delete dir="${instrumentation.absolute.dir}" />
- <delete file="coverage.ec" />
- <delete file="coverage.em" />
- <echo>Saving the report file in ${basedir}/coverage/coverage.html</echo>
- </target>
-
-</project>
diff --git a/files/ant/ant_lib_rules_r3.xml b/files/ant/lib_rules.xml
index a1b2217..a1b2217 100644
--- a/files/ant/ant_lib_rules_r3.xml
+++ b/files/ant/lib_rules.xml
diff --git a/files/ant/ant_rules_r3.xml b/files/ant/main_rules.xml
index 2ac5742..96fb0ef 100644
--- a/files/ant/ant_rules_r3.xml
+++ b/files/ant/main_rules.xml
@@ -45,10 +45,7 @@
<!-- Name of the application package extracted from manifest file -->
<xpath input="AndroidManifest.xml" expression="/manifest/@package"
output="manifest.package" />
- <!-- Value of the debuggable attribute (Application node) extracted from manifest file -->
- <xpath input="AndroidManifest.xml" expression="/manifest/application/@android:debuggable"
- output="manifest.debuggable" default="false"/>
- <!-- Value of the debuggable attribute (Application node) extracted from manifest file -->
+ <!-- Value of the hasCode attribute (Application node) extracted from manifest file -->
<xpath input="AndroidManifest.xml" expression="/manifest/application/@android:hasCode"
output="manifest.hasCode" default="true"/>
@@ -186,7 +183,7 @@
<!-- This is macro that enable passing variable list of external jar files to ApkBuilder
Example of use:
- <package-helper sign.package="true" output.filepath="/path/to/foo.apk">
+ <package-helper output.filepath="/path/to/foo.apk">
<extra-jars>
<jarfolder path="my_jars" />
<jarfile path="foo/bar.jar" />
@@ -194,7 +191,6 @@
</extra-jars>
</package-helper> -->
<macrodef name="package-helper">
- <attribute name="sign.package" />
<attribute name="output.filepath" />
<element name="extra-jars" optional="yes" />
<sequential>
@@ -202,8 +198,7 @@
outfolder="${out.absolute.dir}"
resourcefile="${resource.package.file.name}"
apkfilepath="@{output.filepath}"
- signed="@{sign.package}"
- debug="${manifest.debuggable}"
+ debug="${build.debug}"
abifilter="${filter.abi}"
verbose="${verbose}"
hascode="${manifest.hasCode}">
@@ -376,6 +371,7 @@
<aapt executable="${aapt}"
command="package"
versioncode="${version.code}"
+ debug="${build.debug}"
manifest="AndroidManifest.xml"
assets="${asset.absolute.dir}"
androidjar="${android.jar}"
@@ -391,14 +387,12 @@
<!-- Packages the application and sign it with a debug key. -->
<target name="-package-debug-sign" depends="-dex, -package-resources">
<package-helper
- sign.package="true"
output.filepath="${out.debug.unaligned.file}" />
</target>
<!-- Packages the application without signing it. -->
<target name="-package-release" depends="-dex, -package-resources">
<package-helper
- sign.package="false"
output.filepath="${out.unsigned.file}"/>
</target>
@@ -408,8 +402,18 @@
</subant>
</target>
+ <target name="-set-debug-mode">
+ <!-- property only set in debug mode.
+ Useful for if/unless attributes in target node
+ when using Ant before 1.8 -->
+ <property name="build.mode.debug" value="true"/>
+
+ <!-- whether the build is a debug build. always set. -->
+ <property name="build.debug" value="true" />
+ </target>
+
<!-- Builds debug output package, provided all the necessary files are already dexed -->
- <target name="debug" depends="-compile-tested-if-test, -package-debug-sign"
+ <target name="debug" depends="-set-debug-mode, -compile-tested-if-test, -package-debug-sign"
description="Builds the application and signs it with a debug key.">
<zipalign-helper in.package="${out.debug.unaligned.file}"
out.package="${out.debug.file}" />
@@ -437,7 +441,13 @@
</target>
<target name="-set-release-mode">
+ <!-- property only set in release mode.
+ Useful for if/unless attributes in target node
+ when using Ant before 1.8 -->
<property name="build.mode.release" value="true"/>
+
+ <!-- whether the build is a debug build. always set. -->
+ <property name="build.debug" value="false" />
</target>
<!-- This runs -package-release and -release-nosign first and then runs
@@ -531,7 +541,6 @@
<!-- Invoked from external files for code coverage purposes -->
<target name="-package-with-emma" depends="-dex-instrumented, -package-resources">
<package-helper
- sign.package="true"
output.filepath="${out.debug.unaligned.file}">
<extra-jars>
<!-- Injected from external file -->
@@ -540,7 +549,7 @@
</package-helper>
</target>
- <target name="-debug-with-emma" depends="-package-with-emma">
+ <target name="-debug-with-emma" depends="-set-debug-mode, -package-with-emma">
<zipalign-helper in.package="${out.debug.unaligned.file}"
out.package="${out.debug.file}" />
</target>
diff --git a/files/ant/ant_test_rules_r3.xml b/files/ant/test_rules.xml
index 62fc77d..62fc77d 100644
--- a/files/ant/ant_test_rules_r3.xml
+++ b/files/ant/test_rules.xml
diff --git a/files/sdk.properties b/files/sdk.properties
index cf62029..efa50d9 100644
--- a/files/sdk.properties
+++ b/files/sdk.properties
@@ -1,6 +1,4 @@
# SDK properties
# This file is copied in the root folder of each platform component.
# If it used by various tools to figure out what the platform can do.
-sdk.build.support.library=true
-sdk.ant.build.revision=3
sdk.ant.templates.revision=1 \ No newline at end of file