Chromium Code Reviews| Index: build/android/ant/apk-build.xml |
| diff --git a/build/android/ant/apk-build.xml b/build/android/ant/apk-build.xml |
| index 1aef20fa20e38feb67dfe7918b676c9b3db18824..dff8faac5a35b5be960dacfcb6b55b91b1ff427a 100644 |
| --- a/build/android/ant/apk-build.xml |
| +++ b/build/android/ant/apk-build.xml |
| @@ -74,7 +74,6 @@ |
| <condition property="proguard.config" value="${PROGUARD_FLAGS}"> |
| <istrue value="${PROGUARD_ENABLED}"/> |
| </condition> |
| - <!-- TODO(shashishekhar): Enable emma and code-coverage filters. --> |
| <!-- Set the output directory for the final apk to the ${apks.dir}. --> |
| <property-location name="out.final.file" |
| @@ -146,16 +145,9 @@ |
| <property name="java.source" value="1.5" /> |
| <property name="java.compilerargs" value="" /> |
| - <!-- Renderscript options --> |
| - <property name="renderscript.debug.opt.level" value="O0" /> |
| - <property name="renderscript.release.opt.level" value="O3" /> |
| - |
| <!-- manifest merger default value --> |
| <property name="manifestmerger.enabled" value="false" /> |
|
shashi
2013/03/11 23:35:03
Can remove this?
cjhopman
2013/03/11 23:54:21
Same.
|
| - <!-- instrumentation options --> |
| - <property name="emma.filter" value="" /> |
| - |
| <!-- Verbosity --> |
| <property name="verbose" value="false" /> |
| @@ -182,16 +174,6 @@ |
| <!-- Custom tasks --> |
| <taskdef resource="anttasks.properties" classpathref="android.antlibs" /> |
| - <!-- 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 --> |
| - |
| - |
| <!-- ******************************************************* --> |
| <!-- ******************* Other Properties ****************** --> |
| <!-- ******************************************************* --> |
| @@ -237,15 +219,8 @@ |
| <property name="aidl" location="${android.platform.tools.dir}/aidl${exe}" /> |
| <property name="aapt" location="${android.platform.tools.dir}/aapt${exe}" /> |
| <property name="dx" location="${android.platform.tools.dir}/dx${bat}" /> |
| - <property name="renderscript" location="${android.platform.tools.dir}/llvm-rs-cc${exe}"/> |
| <property name="lint" location="${android.tools.dir}/lint${bat}" /> |
|
Yaron
2013/03/11 23:38:06
Would be interesting to get lint running in the fu
cjhopman
2013/03/11 23:54:21
Agreed. See below.
|
| - <!-- Renderscript include Path --> |
| - <path id="android.renderscript.include.path"> |
| - <pathelement location="${android.platform.tools.dir}/renderscript/include" /> |
| - <pathelement location="${android.platform.tools.dir}/renderscript/clang-include" /> |
| - </path> |
| - |
| <!-- Intermediate files --> |
| <property name="dex.file.name" value="classes.dex" /> |
| <property name="intermediate.dex.file" location="${out.absolute.dir}/${dex.file.name}" /> |
| @@ -254,14 +229,6 @@ |
| <!-- Build property file --> |
| <property name="out.build.prop.file" location="${out.absolute.dir}/build.prop" /> |
| - |
| - <!-- 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> |
| - |
| <!-- properties for signing in release mode --> |
| <condition property="has.keystore"> |
| <and> |
| @@ -407,7 +374,7 @@ |
| </macrodef> |
| <!-- This is macro which zipaligns in.package and outputs it to out.package. Used by targets |
| - debug, -debug-with-emma and release.--> |
| + debug and release.--> |
| <macrodef name="zipalign-helper"> |
| <attribute name="in.package" /> |
| <attribute name="out.package" /> |
| @@ -420,26 +387,6 @@ |
| </sequential> |
| </macrodef> |
| - <macrodef name="run-tests-helper"> |
| - <attribute name="emma.enabled" default="false" /> |
| - <element name="extra-instrument-args" optional="yes" /> |
| - <sequential> |
| - <echo level="info">Running tests ...</echo> |
| - <exec executable="${adb}" failonerror="true"> |
| - <arg line="${adb.device.arg}" /> |
| - <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="${project.app.package}/${test.runner}" /> |
| - </exec> |
| - </sequential> |
| - </macrodef> |
| - |
| <macrodef name="record-build-key"> |
| <attribute name="key" default="false" /> |
| <attribute name="value" default="false" /> |
| @@ -649,70 +596,16 @@ |
| targetApi="${project.target.apilevel}" |
| verbose="${verbose}" /> |
| - <!-- compile the libraries if any --> |
| - <if> |
| - <condition> |
| - <and> |
| - <isreference refid="project.library.folder.path" /> |
| - <not><isset property="dont.do.deps" /></not> |
|
Yaron
2013/03/11 23:38:06
Can you get rid of this property now? I set it in
cjhopman
2013/03/11 23:54:21
It's likely still needed for native_test_apk.xml.
|
| - </and> |
| - </condition> |
| - <then> |
| - <!-- figure out which target must be used to build the library projects. |
| - If emma is enabled, then use 'instrument' otherwise, use 'debug' --> |
| - <condition property="project.libraries.target" value="instrument" else="${build.target}"> |
| - <istrue value="${build.is.instrumented}" /> |
| - </condition> |
| - |
| - <echo level="info">----------</echo> |
| - <echo level="info">Building Libraries with '${project.libraries.target}'...</echo> |
| - |
| - <!-- no need to build the deps as we have already |
| - the full list of libraries --> |
| - <subant failonerror="true" |
| - buildpathref="project.library.folder.path" |
| - antfile="build.xml"> |
| - <target name="nodeps" /> |
| - <target name="${project.libraries.target}" /> |
| - <property name="emma.coverage.absolute.file" location="${out.absolute.dir}/coverage.em" /> |
| - </subant> |
| - </then> |
| - </if> |
| - |
| - <!-- compile the main project if this is a test project --> |
| - <if condition="${project.is.test}"> |
| - <then> |
| - <!-- figure out which target must be used to build the tested project. |
| - If emma is enabled, then use 'instrument' otherwise, use 'debug' --> |
| - <condition property="tested.project.target" value="instrument" else="debug"> |
| - <isset property="emma.enabled" /> |
| - </condition> |
| - |
| - <echo level="info">----------</echo> |
| - <echo level="info">Building tested project at ${tested.project.absolute.dir} with '${tested.project.target}'...</echo> |
| - <subant target="${tested.project.target}" failonerror="true"> |
| - <fileset dir="${tested.project.absolute.dir}" includes="build.xml" /> |
| - </subant> |
| - |
| - <!-- get the tested project full classpath to be able to build |
| - the test project --> |
| - <testedprojectclasspath |
| - projectLocation="${tested.project.absolute.dir}" |
| - projectClassPathOut="tested.project.classpath"/> |
| - </then> |
| - <else> |
| - <!-- no tested project, make an empty Path object so that javac doesn't |
| - complain --> |
| - <path id="tested.project.classpath" /> |
| - </else> |
| - </if> |
| + <!-- no tested project, make an empty Path object so that javac doesn't |
| + complain --> |
| + <path id="tested.project.classpath" /> |
| </target> |
| <!-- empty default pre-build target. Create a similar target in |
| your build.xml and it'll be called instead of this one. --> |
| <target name="-pre-build"/> |
| - <!-- Code Generation: compile resources (aapt -> R.java), aidl, renderscript --> |
| + <!-- Code Generation: compile resources (aapt -> R.java), aidl --> |
| <target name="-code-gen"> |
| <!-- always merge manifest --> |
| <mergemanifest |
| @@ -723,30 +616,7 @@ |
| </mergemanifest> |
| <do-only-if-manifest-hasCode |
| - elseText="hasCode = false. Skipping aidl/renderscript/R.java"> |
| - <echo level="info">Handling aidl files...</echo> |
| - <aidl executable="${aidl}" |
| - framework="${project.target.framework.aidl}" |
| - libraryBinAidlFolderPathRefid="project.library.bin.aidl.folder.path" |
| - genFolder="${gen.absolute.dir}" |
| - aidlOutFolder="${out.aidl.absolute.dir}"> |
| - <source path="${source.absolute.dir}"/> |
| - </aidl> |
| - |
| - <!-- renderscript generates resources so it must be called before aapt --> |
| - <echo level="info">----------</echo> |
| - <echo level="info">Handling RenderScript files...</echo> |
| - <renderscript executable="${renderscript}" |
| - includePathRefId="android.renderscript.include.path" |
| - genFolder="${gen.absolute.dir}" |
| - resFolder="${out.res.absolute.dir}/raw" |
| - targetApi="${project.minSdkVersion}" |
| - optLevel="${renderscript.opt.level}" |
| - buildType="${build.is.packaging.debug}" |
| - previousBuildType="${build.last.is.packaging.debug}"> |
| - <source path="${source.absolute.dir}"/> |
| - </renderscript> |
| - |
| + elseText="hasCode = false. Skipping aidl/R.java"> |
| <echo level="info">----------</echo> |
| <echo level="info">Handling Resources...</echo> |
| <aapt executable="${aapt}" |
| @@ -801,17 +671,6 @@ |
| name="-compile" |
| depends="-build-setup, -pre-build, -code-gen, -pre-compile"> |
| <do-only-if-manifest-hasCode elseText="hasCode = false. Skipping..." > |
| - <!-- If javac.srcdirs.additional isn't set, set it to an empty path. --> |
| - <if> |
| - <condition> |
| - <not> |
| - <isreference refid="javac.srcdirs.additional"/> |
| - </not> |
| - </condition> |
| - <then> |
| - <path id="javac.srcdirs.additional"/> |
| - </then> |
| - </if> |
| <javac |
| bootclasspathref="project.target.class.path" |
| classpathref="javac.custom.classpath" |
| @@ -833,41 +692,6 @@ |
| <compilerarg line="${java.compilerargs}"/> |
| </javac> |
| <!-- |
| - If the project is instrumented, then instrument the classes |
| - TODO(shashishekhar): Add option to override emma filter. |
| - --> |
| - <if condition="${build.is.instrumented}"> |
| - <then> |
| - <echo level="info"> |
| - Instrumenting classes from ${out.absolute.dir}/classes... |
| - </echo> |
| - <!-- build the default filter to remove R, Manifest, BuildConfig --> |
| - <getemmafilter |
| - appPackage="${project.app.package}" |
| - filterOut="emma.default.filter" |
| - libraryPackagesRefId="project.library.packages"/> |
| - <!-- |
| - Define where the .em file is output. |
| - This may have been setup already if this is a library. |
| - --> |
| - <property name="emma.coverage.absolute.file" |
| - location="${out.absolute.dir}/coverage.em"/> |
| - <!-- It only instruments class files, not any external libs --> |
| - |
| - <emma enabled="true"> |
| - <instr |
| - instrpath="${out.absolute.dir}/classes" |
| - metadatafile="${emma.coverage.absolute.file}" |
| - mode="overwrite" |
| - outdir="${out.absolute.dir}/classes" |
| - verbosity="${verbosity}"> |
| - <filter excludes="${emma.default.filter}"/> |
| - <filter value="${emma.filter}"/> |
| - </instr> |
| - </emma> |
| - </then> |
| - </if> |
| - <!-- |
| If the project needs a test jar then generate a jar containing |
| all compiled classes and referenced jars. |
| project.is.testapp is set by Android's ant build system based on the |
| @@ -1013,20 +837,7 @@ |
| <do-only-if-manifest-hasCode elseText="hasCode = false. Skipping..."> |
| <!-- only convert to dalvik bytecode is *not* a library --> |
| <do-only-if-not-library elseText="Library project: do not convert bytecode..." > |
| - <!-- special case for instrumented builds: need to use no-locals and need |
| - to pass in the emma jar. --> |
| - <if condition="${build.is.instrumented}"> |
| - <then> |
| - <dex-helper nolocals="true"> |
| - <external-libs> |
| - <fileset file="${emma.dir}/emma_device.jar" /> |
| - </external-libs> |
| - </dex-helper> |
| - </then> |
| - <else> |
| - <dex-helper /> |
| - </else> |
| - </if> |
| + <dex-helper /> |
| </do-only-if-not-library> |
| </do-only-if-manifest-hasCode> |
| </target> |
| @@ -1081,19 +892,7 @@ |
| <target name="-package" depends="-dex, -package-resources"> |
| <!-- only package apk if *not* a library project --> |
| <do-only-if-not-library elseText="Library project: do not package apk..." > |
| - <if condition="${build.is.instrumented}"> |
| - <then> |
| - <package-helper> |
| - <extra-jars> |
| - <!-- Injected from external file --> |
| - <jarfile path="${emma.dir}/emma_device.jar" /> |
| - </extra-jars> |
| - </package-helper> |
| - </then> |
| - <else> |
| - <package-helper /> |
| - </else> |
| - </if> |
| + <package-helper /> |
| </do-only-if-not-library> |
| </target> |
| @@ -1121,30 +920,13 @@ |
| <!-- record the current build target --> |
| <property name="build.target" value="debug" /> |
| - <if> |
| - <condition> |
| - <and> |
| - <istrue value="${project.is.testapp}" /> |
| - <istrue value="${emma.enabled}" /> |
| - </and> |
| - </condition> |
| - <then> |
| - <property name="build.is.instrumented" value="true" /> |
| - </then> |
| - <else> |
| - <property name="build.is.instrumented" value="false" /> |
| - </else> |
| - </if> |
| + <property name="build.is.instrumented" value="false" /> |
| <!-- whether the build is a debug build. always set. --> |
| <property name="build.is.packaging.debug" value="true" /> |
| <!-- signing mode: debug --> |
| <property name="build.is.signing.debug" value="true" /> |
| - |
| - <!-- Renderscript optimization level: none --> |
| - <property name="renderscript.opt.level" value="${renderscript.debug.opt.level}" /> |
| - |
| </target> |
| <target name="-debug-obfuscation-check"> |
| @@ -1209,26 +991,11 @@ |
| <!-- called through target 'release'. Only executed if the keystore and |
| key alias are known but not their password. --> |
| <target name="-release-prompt-for-password" if="has.keystore" unless="has.password"> |
| - <!-- 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" /> |
| </target> |
| <!-- called through target 'release'. Only executed if there's no |
| keystore/key alias set --> |
| <target name="-release-nosign" unless="has.keystore"> |
| - <!-- no release builds for library project --> |
| - <do-only-if-not-library elseText="" > |
| - <sequential> |
| - <echo level="info">No key.store and key.alias properties found in build.properties.</echo> |
| - <echo level="info">Please sign ${out.packaged.file} manually</echo> |
| - <echo level="info">and run zipalign from the Android SDK tools.</echo> |
| - </sequential> |
| - </do-only-if-not-library> |
| <record-build-info /> |
| </target> |
| @@ -1268,9 +1035,6 @@ |
| <!-- signing mode: release --> |
| <property name="build.is.signing.debug" value="false" /> |
| - <!-- Renderscript optimization level: aggressive --> |
| - <property name="renderscript.opt.level" value="${renderscript.release.opt.level}" /> |
| - |
| <if condition="${build.is.packaging.debug}"> |
| <then> |
| <echo>*************************************************</echo> |
| @@ -1321,372 +1085,4 @@ |
| description="Builds the application in release mode."> |
| </target> |
| - <!-- ******************************************************* --> |
| - <!-- ************ Instrumented specific targets ************ --> |
| - <!-- ******************************************************* --> |
| - |
| - <!-- These targets are specific for the project under test when it |
| - gets compiled by the test projects in a way that will make it |
| - support emma code coverage --> |
| - |
| - <target name="-set-instrumented-mode" depends="-set-mode-check"> |
| - <property name="out.packaged.file" location="${out.absolute.dir}/${ant.project.name}-instrumented-unaligned.apk" /> |
| - <property name="out.final.file" location="${out.absolute.dir}/${ant.project.name}-instrumented.apk" /> |
| - <property name="build.is.mode.set" value="true" /> |
| - |
| - <!-- whether the build is an instrumented build. --> |
| - <property name="build.is.instrumented" value="true" /> |
| - </target> |
| - |
| - <!-- Builds instrumented output package --> |
| - <target name="instrument" depends="-set-instrumented-mode, -do-debug" |
| - description="Builds an instrumented packaged."> |
| - <!-- only create apk if *not* a library project --> |
| - <do-only-if-not-library elseText="Library project: do not create apk..." > |
| - <sequential> |
| - <zipalign-helper in.package="${out.packaged.file}" out.package="${out.final.file}" /> |
| - <echo level="info">Instrumented Package: ${out.final.file}</echo> |
| - </sequential> |
| - </do-only-if-not-library> |
| - <record-build-info /> |
| - </target> |
| - |
| - <!-- ******************************************************* --> |
| - <!-- ************ Test project specific targets ************ --> |
| - <!-- ******************************************************* --> |
| - |
| - <!-- enable code coverage --> |
| - <target name="emma"> |
| - <property name="emma.enabled" value="true" /> |
| - </target> |
| - |
| - <!-- fails if the project is not a test project --> |
| - <target name="-test-project-check" depends="-setup"> |
| - <if> |
| - <condition> |
| - <and> |
| - <isfalse value="${project.is.test}" /> |
| - <isfalse value="${project.is.testapp}" /> |
| - </and> |
| - </condition> |
| - <then> |
| - <fail message="Project is not a test project." /> |
| - </then> |
| - </if> |
| - </target> |
| - |
| - <target name="test" depends="-test-project-check" |
| - description="Runs tests from the package defined in test.package property"> |
| - <property name="test.runner" value="android.test.InstrumentationTestRunner" /> |
| - |
| - <if condition="${project.is.test}"> |
| - <then> |
| - <property name="tested.project.absolute.dir" location="${tested.project.dir}" /> |
| - |
| - <!-- Application package of the tested project extracted from its manifest file --> |
| - <xpath input="${tested.project.absolute.dir}/AndroidManifest.xml" |
| - expression="/manifest/@package" output="tested.project.app.package" /> |
| - |
| - <if condition="${emma.enabled}"> |
| - <then> |
| - <getprojectpaths projectPath="${tested.project.absolute.dir}" |
| - binOut="tested.project.out.absolute.dir" |
| - srcOut="tested.project.source.absolute.dir" /> |
| - |
| - <getlibpath projectPath="${tested.project.absolute.dir}" |
| - libraryFolderPathOut="tested.project.lib.source.path" |
| - leaf="@{source.dir}" /> |
| - |
| - </then> |
| - </if> |
| - |
| - </then> |
| - <else> |
| - <!-- this is a test app, the tested package is the app's own package --> |
| - <property name="tested.project.app.package" value="${project.app.package}" /> |
| - |
| - <if condition="${emma.enabled}"> |
| - <then> |
| - <property name="tested.project.out.absolute.dir" value="${out.absolute.dir}" /> |
| - <property name="tested.project.source.absolute.dir" value="${source.absolute.dir}" /> |
| - |
| - <getlibpath |
| - libraryFolderPathOut="tested.project.lib.source.path" |
| - leaf="@{source.dir}" /> |
| - |
| - </then> |
| - </if> |
| - |
| - </else> |
| - </if> |
| - |
| - <property name="emma.dump.file" |
| - value="/data/data/${tested.project.app.package}/coverage.ec" /> |
| - |
| - <if condition="${emma.enabled}"> |
| - <then> |
| - <echo>Running tests...</echo> |
| - <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 level="info">Settting permission to download the coverage file...</echo> |
| - <exec executable="${adb}" failonerror="true"> |
| - <arg line="${adb.device.arg}" /> |
| - <arg value="shell" /> |
| - <arg value="run-as" /> |
| - <arg value="${tested.project.app.package}" /> |
| - <arg value="chmod" /> |
| - <arg value="644" /> |
| - <arg value="${emma.dump.file}" /> |
| - </exec> |
| - <echo level="info">Downloading coverage file into project directory...</echo> |
| - <exec executable="${adb}" failonerror="true"> |
| - <arg line="${adb.device.arg}" /> |
| - <arg value="pull" /> |
| - <arg value="${emma.dump.file}" /> |
| - <arg path="${out.absolute.dir}/coverage.ec" /> |
| - </exec> |
| - |
| - <pathconvert property="tested.project.lib.source.path.value" refid="tested.project.lib.source.path"> |
| - <firstmatchmapper> |
| - <regexpmapper from='^([^ ]*)( .*)$$' to='"\1\2"'/> |
| - <identitymapper/> |
| - </firstmatchmapper> |
| - </pathconvert> |
| - |
| - <echo level="info">Extracting coverage report...</echo> |
| - <emma> |
| - <property name="report.html.out.encoding" value="UTF-8" /> |
| - <report sourcepath="${tested.project.source.absolute.dir}:${tested.project.lib.source.path.value}" |
| - verbosity="${verbosity}"> |
| - <!-- TODO: report.dir or something like should be introduced if necessary --> |
| - <infileset file="${out.absolute.dir}/coverage.ec" /> |
| - <infileset file="${tested.project.out.absolute.dir}/coverage.em" /> |
| - <!-- TODO: reports in other, indicated by user formats --> |
| - <html outfile="${out.absolute.dir}/coverage.html" /> |
| - <txt outfile="${out.absolute.dir}/coverage.txt" /> |
| - <xml outfile="${out.absolute.dir}/coverage.xml" /> |
| - </report> |
| - </emma> |
| - <echo level="info">Cleaning up temporary files...</echo> |
| - <delete file="${out.absolute.dir}/coverage.ec" /> |
| - <delete file="${tested.project.out.absolute.dir}/coverage.em" /> |
| - <exec executable="${adb}" failonerror="true"> |
| - <arg line="${adb.device.arg}" /> |
| - <arg value="shell" /> |
| - <arg value="run-as" /> |
| - <arg value="${tested.project.app.package}" /> |
| - <arg value="rm" /> |
| - <arg value="${emma.dump.file}" /> |
| - </exec> |
| - <echo level="info">Saving the coverage reports in ${out.absolute.dir}</echo> |
| - </then> |
| - <else> |
| - <run-tests-helper /> |
| - </else> |
| - </if> |
| - </target> |
| - |
| - <!-- ******************************************************* --> |
| - <!-- ********** Run Lint on the project ********* --> |
|
Yaron
2013/03/11 23:38:06
Keep this around? Or you'd rather manually invoke?
cjhopman
2013/03/11 23:54:21
I think we should have this, but it can be it's ow
|
| - <!-- ******************************************************* --> |
| - |
| - <target name="lint" |
| - description="Runs lint on the project to look for potential bugs" > |
| - <lint executable="${lint}" |
| - html="${lint.out.html}" |
| - xml="${lint.out.xml}" |
| - src="${source.absolute.dir}:${gen.absolute.dir}" |
| - classpath="${out.classes.absolute.dir}" /> |
| - </target> |
| - |
| - <!-- ******************************************************* --> |
| - <!-- ********** Install/uninstall specific targets ********* --> |
| - <!-- ******************************************************* --> |
| - |
| - <target name="install" |
| - description="Installs the newly build package. Must be used in conjunction with a build target |
| - (debug/release/instrument). If the application was previously installed, the application |
| - is reinstalled if the signature matches." > |
| - <!-- only do install if *not* a library project --> |
| - <do-only-if-not-library elseText="Library project: nothing to install!" > |
| - <if> |
| - <condition> |
| - <isset property="out.final.file" /> |
| - </condition> |
| - <then> |
| - <if> |
| - <condition> |
| - <resourceexists> |
| - <file file="${out.final.file}"/> |
| - </resourceexists> |
| - </condition> |
| - <then> |
| - <echo level="info">Installing ${out.final.file} 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.final.file}" /> |
| - </exec> |
| - |
| - <!-- now install the tested project if applicable --> |
| - <!-- can't use project.is.test since the setup target might not have run --> |
| - <if> |
| - <condition> |
| - <and> |
| - <isset property="tested.project.dir" /> |
| - <not> |
| - <isset property="dont.do.deps" /> |
| - </not> |
| - </and> |
| - </condition> |
| - <then> |
| - <property name="tested.project.absolute.dir" location="${tested.project.dir}" /> |
| - |
| - <!-- figure out which tested package to install based on emma.enabled --> |
| - <condition property="tested.project.install.target" value="installi" else="installd"> |
| - <isset property="emma.enabled" /> |
| - </condition> |
| - <subant target="${tested.project.install.target}" failonerror="true"> |
| - <fileset dir="${tested.project.absolute.dir}" includes="build.xml" /> |
| - </subant> |
| - </then> |
| - </if> |
| - </then> |
| - <else> |
| - <fail message="File ${out.final.file} does not exist." /> |
| - </else> |
| - </if> |
| - </then> |
| - <else> |
| - <echo>Install file not specified.</echo> |
| - <echo></echo> |
| - <echo>'ant install' now requires the build target to be specified as well.</echo> |
| - <echo></echo> |
| - <echo></echo> |
| - <echo> ant debug install</echo> |
| - <echo> ant release install</echo> |
| - <echo> ant instrument install</echo> |
| - <echo>This will build the given package and install it.</echo> |
| - <echo></echo> |
| - <echo>Alternatively, you can use</echo> |
| - <echo> ant installd</echo> |
| - <echo> ant installr</echo> |
| - <echo> ant installi</echo> |
| - <echo> ant installt</echo> |
| - <echo>to only install an existing package (this will not rebuild the package.)</echo> |
| - <fail /> |
| - </else> |
| - </if> |
| - </do-only-if-not-library> |
| - </target> |
| - |
| - <target name="installd" depends="-set-debug-files, install" |
| - description="Installs (only) the debug package." /> |
| - <target name="installr" depends="-set-release-mode, install" |
| - description="Installs (only) the release package." /> |
| - <target name="installi" depends="-set-instrumented-mode, install" |
| - description="Installs (only) the instrumented package." /> |
| - <target name="installt" depends="-test-project-check, installd" |
| - description="Installs (only) the test and tested packages." /> |
| - |
| - |
| - <!-- Uninstalls the package from the default emulator/device --> |
| - <target name="uninstall" depends="-setup" |
| - description="Uninstalls the application from a running emulator or device."> |
| - <if> |
| - <condition> |
| - <isset property="project.app.package" /> |
| - </condition> |
| - <then> |
| - <uninstall-helper app.package="${project.app.package}" /> |
| - </then> |
| - <else> |
| - <fail message="Could not find application package in manifest. Cannot run 'adb uninstall'." /> |
| - </else> |
| - </if> |
| - |
| - <!-- Now uninstall the tested project, if applicable --> |
| - <if> |
| - <condition> |
| - <and> |
| - <istrue value="${project.is.test}" /> |
| - <not> |
| - <isset property="dont.do.deps" /> |
| - </not> |
| - </and> |
| - </condition> |
| - <then> |
| - <property name="tested.project.absolute.dir" location="${tested.project.dir}" /> |
| - |
| - <!-- Application package of the tested project extracted from its manifest file --> |
| - <xpath input="${tested.project.absolute.dir}/AndroidManifest.xml" |
| - expression="/manifest/@package" output="tested.project.app.package" /> |
| - <if> |
| - <condition> |
| - <isset property="tested.project.app.package" /> |
| - </condition> |
| - <then> |
| - <uninstall-helper app.package="${tested.project.app.package}" /> |
| - </then> |
| - <else> |
| - <fail message="Could not find tested application package in manifest. Cannot run 'adb uninstall'." /> |
| - </else> |
| - </if> |
| - </then> |
| - </if> |
| - |
| - </target> |
| - |
| - |
| - <!-- ******************************************************* --> |
| - <!-- ************************* Help ************************ --> |
| - <!-- ******************************************************* --> |
| - |
| - <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> The 'all' target can be used to clean dependencies</echo> |
| - <echo> (tested projects and libraries)at the same time</echo> |
| - <echo> using: 'ant all clean'</echo> |
| - <echo> debug: Builds the application and signs it with a debug key.</echo> |
| - <echo> The 'nodeps' target can be used to only build the</echo> |
| - <echo> current project and ignore the libraries using:</echo> |
| - <echo> 'ant nodeps debug'</echo> |
|
shashi
2013/03/11 23:35:03
We should only remove documentation for targets wh
cjhopman
2013/03/11 23:54:21
Well, we have no way to see this help message (exc
shashi
2013/03/12 00:26:23
Alright, since this is just a temporary step and w
|
| - <echo> release: Builds the application. The generated apk file must be</echo> |
| - <echo> signed before it is published.</echo> |
| - <echo> The 'nodeps' target can be used to only build the</echo> |
| - <echo> current project and ignore the libraries using:</echo> |
| - <echo> 'ant nodeps release'</echo> |
| - <echo> instrument:Builds an instrumented package and signs it with a</echo> |
| - <echo> debug key.</echo> |
| - <echo> test: Runs the tests. Project must be a test project and</echo> |
| - <echo> must have been built. Typical usage would be:</echo> |
| - <echo> ant [emma] debug install test</echo> |
| - <echo> emma: Transiently enables code coverage for subsequent</echo> |
| - <echo> targets.</echo> |
| - <echo> install: Installs the newly build package. Must either be used</echo> |
| - <echo> in conjunction with a build target (debug/release/</echo> |
| - <echo> instrument) or with the proper suffix indicating</echo> |
| - <echo> which package to install (see below).</echo> |
| - <echo> If the application was previously installed, the</echo> |
| - <echo> application is reinstalled if the signature matches.</echo> |
| - <echo> installd: Installs (only) the debug package.</echo> |
| - <echo> installr: Installs (only) the release package.</echo> |
| - <echo> installi: Installs (only) the instrumented package.</echo> |
| - <echo> installt: Installs (only) the test and tested packages (unless</echo> |
| - <echo> nodeps is used as well.</echo> |
| - <echo> uninstall: Uninstalls the application from a running emulator or</echo> |
| - <echo> device. Also uninstall tested package if applicable</echo> |
| - <echo> unless 'nodeps' is used as well.</echo> |
| - </target> |
| </project> |