Index: build/android/ant/apk-build.xml |
diff --git a/build/android/ant/apk-build.xml b/build/android/ant/apk-build.xml |
index 3f7f474588854cacca3d3b5f039459abcabe6bb5..bc84338c295cdb3e20f70231c533a13c53e1e2ba 100644 |
--- a/build/android/ant/apk-build.xml |
+++ b/build/android/ant/apk-build.xml |
@@ -138,6 +138,59 @@ |
<!-- overriding these properties may break the build |
unless the whole file is updated --> |
+ <target name="-set-release-mode"> |
+ <!-- record the current build target --> |
+ <property name="build.target" value="release" /> |
+ |
+ <!-- release mode is only valid if the manifest does not explicitly |
+ set debuggable to true. default is false. --> |
+ <xpath input="${manifest.abs.file}" expression="/manifest/application/@android:debuggable" |
+ output="build.is.packaging.debug" default="false"/> |
+ |
+ <if condition="${build.is.packaging.debug}"> |
+ <then> |
+ <echo>*************************************************</echo> |
+ <echo>**** Android Manifest has debuggable=true ****</echo> |
+ <echo>**** Doing DEBUG packaging with RELEASE keys ****</echo> |
+ <echo>*************************************************</echo> |
+ </then> |
+ <else> |
+ <!-- property only set in release mode. |
+ Useful for if/unless attributes in target node |
+ when using Ant before 1.8 --> |
+ <property name="build.is.mode.release" value="true"/> |
+ </else> |
+ </if> |
+ |
+ <echo level="info">proguard.config is ${proguard.config}</echo> |
+ <condition property="proguard.enabled" value="true" else="false"> |
+ <and> |
+ <isset property="build.is.mode.release" /> |
+ <isset property="proguard.config" /> |
+ </and> |
+ </condition> |
+ <if condition="${proguard.enabled}"> |
+ <then> |
+ <echo level="info">Proguard.config is enabled</echo> |
+ <!-- Secondary dx input (jar files) is empty since all the |
+ jar files will be in the obfuscated jar --> |
+ <path id="out.dex.jar.input.ref" /> |
+ </then> |
+ </if> |
+ </target> |
+ |
+ <target name="-set-debug-mode"> |
+ <!-- record the current build target --> |
+ <property name="build.target" value="debug" /> |
+ |
+ <!-- whether the build is a debug build. always set. --> |
+ <property name="build.is.packaging.debug" value="true" /> |
+ |
+ <!-- proguard is never enabled in debug mode --> |
+ <property name="proguard.enabled" value="false"/> |
+ </target> |
+ |
+ |
<!-- Input directories --> |
<property name="source.dir" value="src" /> |
<property name="source.absolute.dir" location="${source.dir}" /> |
@@ -150,8 +203,6 @@ |
<equals arg1="${ASSET_DIR}" arg2=""/> |
</condition> |
- <property name="jar.libs.dir" value="libs" /> |
- <property name="jar.libs.absolute.dir" location="${jar.libs.dir}" /> |
<property-location name="native.libs.absolute.dir" location="${out.dir}/libs" |
check-exists="false"/> |
@@ -205,13 +256,9 @@ |
<!-- ******************** Build Targets ******************** --> |
<!-- ******************************************************* --> |
- <!-- Basic Ant + SDK check --> |
- <target name="-check-env"> |
- <checkenv /> |
- </target> |
- |
<!-- generic setup --> |
- <target name="-setup" depends="-check-env"> |
+ <target name="-setup"> |
+ <checkenv /> |
<echo level="info">Project Name: ${ant.project.name}</echo> |
<gettype projectTypeOut="project.type" /> |
@@ -224,10 +271,6 @@ |
<!-- get the project manifest package --> |
<xpath input="${manifest.abs.file}" |
expression="/manifest/@package" output="project.app.package" /> |
- </target> |
- |
- <!-- Pre build setup --> |
- <target name="-build-setup" depends="-setup"> |
<!-- read the previous build mode --> |
<property file="${out.build.prop.file}" /> |
@@ -245,11 +288,8 @@ |
<property name="manifest.hasCode" value="true" /> |
- |
<echo level="info">----------</echo> |
<echo level="info">Creating output directories if needed...</echo> |
- <mkdir dir="${resource.absolute.dir}" /> |
- <mkdir dir="${jar.libs.absolute.dir}" /> |
<mkdir dir="${out.absolute.dir}" /> |
<mkdir dir="${out.res.absolute.dir}" /> |
<mkdir dir="${gen.absolute.dir}" /> |
@@ -257,12 +297,8 @@ |
<mkdir dir="${out.dexed.absolute.dir}" /> |
</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 --> |
- <target name="-code-gen"> |
+ <target name="-code-gen" depends="-setup"> |
<!-- always merge manifest --> |
<mergemanifest |
appManifest="${manifest.abs.file}" |
@@ -289,26 +325,6 @@ |
<res path="${resource.absolute.dir}" /> |
</aapt> |
- <echo level="info">----------</echo> |
- <echo level="info">Handling BuildConfig class...</echo> |
- <buildconfig |
- genFolder="${gen.absolute.dir}" |
- package="${project.app.package}" |
- buildType="${build.is.packaging.debug}" |
- previousBuildType=""/> |
- </target> |
- |
- <!-- empty default pre-compile target. Create a similar target in |
- your build.xml and it'll be called instead of this one. --> |
- <target name="-pre-compile"> |
- <!-- |
- Remove all .class files from the output directory. This prevents inclusion of incorrect .class |
- files in the final apk. For example, if a .java file was deleted, the apk should not contain |
- the .class files for that .java from previous builds. |
- --> |
- <delete> |
- <fileset dir="${out.classes.absolute.dir}" includes="**/*.class"/> |
- </delete> |
</target> |
<!-- |
@@ -318,9 +334,11 @@ |
sources: 'javac.custom.sourcepath'. |
--> |
<!-- Compiles this project's .java files into .class files. --> |
- <target |
- name="-compile" |
- depends="-build-setup, -pre-build, -code-gen, -pre-compile"> |
+ <target name="-compile" depends="-code-gen"> |
+ <delete> |
+ <fileset dir="${out.classes.absolute.dir}" includes="**/*.class"/> |
+ </delete> |
+ |
<javac |
bootclasspathref="project.target.class.path" |
classpathref="javac.custom.classpath" |
@@ -354,11 +372,6 @@ |
<script language="javascript" src="${create.test.jar.file}"/> |
</then> |
</if> |
- </target> |
- |
- <!-- empty default post-compile target. Create a similar target in |
- your build.xml and it'll be called instead of this one. --> |
- <target name="-post-compile"> |
<!-- |
Copy gdbserver to main libs directory if building a non-instrumentation debug apk. |
--> |
@@ -393,7 +406,7 @@ |
Override obfuscate target to pass javac.custom.classpath to Proguard. SDK tools do not provide |
any way to pass custom class paths to Proguard. |
--> |
- <target name="-obfuscate"> |
+ <target name="-obfuscate" depends="-compile"> |
<if condition="${proguard.enabled}"> |
<then> |
<property name="obfuscate.absolute.dir" location="${out.absolute.dir}/proguard"/> |
@@ -469,7 +482,7 @@ |
</target> |
<!-- Converts this project's .class files into .dex files --> |
- <target name="-dex" depends="-compile, -post-compile, -obfuscate"> |
+ <target name="-dex" depends="-obfuscate"> |
<sequential> |
<!-- sets the primary input for dex. If a pre-dex task sets it to |
something else this has no effect --> |
@@ -488,8 +501,13 @@ |
</sequential> |
</target> |
- <!-- Updates the pre-processed PNG cache --> |
- <target name="-crunch"> |
+ <!-- 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" depends="-setup"> |
+ <!-- Updates the pre-processed PNG cache --> |
<exec executable="${aapt}" taskName="crunch"> |
<arg value="crunch" /> |
<arg value="-v" /> |
@@ -498,14 +516,6 @@ |
<arg value="-C" /> |
<arg path="${out.res.absolute.dir}" /> |
</exec> |
- </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" depends="-crunch"> |
<aapt executable="${aapt}" |
command="package" |
versioncode="${version.code}" |
@@ -549,41 +559,8 @@ |
</apkbuilder> |
</target> |
- <target name="-post-package" /> |
- <target name="-post-build" /> |
- |
- <target name="-set-mode-check"> |
- </target> |
- |
- <!-- ******************************************************* --> |
- <!-- **************** Debug specific targets *************** --> |
- <!-- ******************************************************* --> |
- |
- <target name="-set-debug-files" depends="-set-mode-check"> |
- </target> |
- |
- |
- <target name="-set-debug-mode" depends="-setup"> |
- <!-- record the current build target --> |
- <property name="build.target" value="debug" /> |
- |
- <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" /> |
- </target> |
- |
- <target name="-debug-obfuscation-check"> |
- <!-- proguard is never enabled in debug mode --> |
- <property name="proguard.enabled" value="false"/> |
- </target> |
- |
<!-- Signs and zipaligns the apk. --> |
- <target name="-do-sign" |
- depends="-package, -post-package"> |
+ <target name="-do-sign" depends="-package"> |
<sequential> |
<echo level="info">Signing final apk...</echo> |
<signapk |
@@ -603,76 +580,18 @@ |
</sequential> |
</target> |
- <target name="-do-debug" |
- depends="-set-debug-mode, -debug-obfuscation-check, -do-sign"> |
- </target> |
- |
<!-- Builds debug output package --> |
- <target name="debug" depends="-set-debug-files, -do-debug, -post-build" |
- description="Builds the application and signs it with a debug key."> |
- </target> |
- |
- <!-- ******************************************************* --> |
- <!-- *************** Release specific targets ************** --> |
- <!-- ******************************************************* --> |
- |
- <target name="-release-obfuscation-check"> |
- <echo level="info">proguard.config is ${proguard.config}</echo> |
- <condition property="proguard.enabled" value="true" else="false"> |
- <and> |
- <isset property="build.is.mode.release" /> |
- <isset property="proguard.config" /> |
- </and> |
- </condition> |
- <if condition="${proguard.enabled}"> |
- <then> |
- <echo level="info">Proguard.config is enabled</echo> |
- <!-- Secondary dx input (jar files) is empty since all the |
- jar files will be in the obfuscated jar --> |
- <path id="out.dex.jar.input.ref" /> |
- </then> |
- </if> |
- </target> |
- |
- <target name="-set-release-mode" depends="-set-mode-check"> |
- <!-- record the current build target --> |
- <property name="build.target" value="release" /> |
- |
- <property name="build.is.instrumented" value="false" /> |
- |
- <!-- release mode is only valid if the manifest does not explicitly |
- set debuggable to true. default is false. --> |
- <xpath input="${manifest.abs.file}" expression="/manifest/application/@android:debuggable" |
- output="build.is.packaging.debug" default="false"/> |
- |
- <!-- signing mode: release --> |
- <property name="build.is.signing.debug" value="false" /> |
- |
- <if condition="${build.is.packaging.debug}"> |
- <then> |
- <echo>*************************************************</echo> |
- <echo>**** Android Manifest has debuggable=true ****</echo> |
- <echo>**** Doing DEBUG packaging with RELEASE keys ****</echo> |
- <echo>*************************************************</echo> |
- </then> |
- <else> |
- <!-- property only set in release mode. |
- Useful for if/unless attributes in target node |
- when using Ant before 1.8 --> |
- <property name="build.is.mode.release" value="true"/> |
- </else> |
- </if> |
- </target> |
- |
- <target name="-release-sign" depends="-do-sign" > |
+ <target name="debug" |
+ depends="-set-debug-mode, -do-sign" |
+ description="Builds the application and signs it with a debug key."> |
</target> |
<!-- This runs -package-release first and then runs |
only if release-sign is true (set in -release-check, |
called by -release-no-sign)--> |
<target name="release" |
- depends="-set-release-mode, -release-obfuscation-check, -package, -post-package, -release-sign, -post-build" |
- description="Builds the application in release mode."> |
+ depends="-set-release-mode, -do-sign" |
+ description="Builds the application in release mode."> |
</target> |
</project> |