Index: build/android/ant/apk-build.xml |
diff --git a/build/android/ant/apk-build.xml b/build/android/ant/apk-build.xml |
index 7a419709ea9d989be0337f2f28dc3f6373d3b49c..167083b1953c43d206f1f6ffae2dd93b5724d01e 100644 |
--- a/build/android/ant/apk-build.xml |
+++ b/build/android/ant/apk-build.xml |
@@ -228,115 +228,6 @@ |
<!-- ************************ Macros *********************** --> |
<!-- ******************************************************* --> |
- <!-- macro to do a task on if project.is.library is false. |
- elseText attribute is displayed otherwise --> |
- <macrodef name="do-only-if-not-library"> |
- <attribute name="elseText" /> |
- <element name="task-to-do" implicit="yes" /> |
- <sequential> |
- <if condition="${project.is.library}"> |
- <else> |
- <task-to-do /> |
- </else> |
- <then> |
- <echo level="info">@{elseText}</echo> |
- </then> |
- </if> |
- </sequential> |
- </macrodef> |
- |
- <!-- macro to do a task on if manifest.hasCode is true. |
- elseText attribute is displayed otherwise --> |
- <macrodef name="do-only-if-manifest-hasCode"> |
- <attribute name="elseText" default=""/> |
- <element name="task-to-do" implicit="yes" /> |
- <sequential> |
- <if condition="${manifest.hasCode}"> |
- <then> |
- <task-to-do /> |
- </then> |
- <else> |
- <if> |
- <condition> |
- <length string="@{elseText}" trim="true" when="greater" length="0" /> |
- </condition> |
- <then> |
- <echo level="info">@{elseText}</echo> |
- </then> |
- </if> |
- </else> |
- </if> |
- </sequential> |
- </macrodef> |
- |
- |
- <!-- 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" /> |
- <attribute name="nolocals" default="false" /> |
- <sequential> |
- <!-- sets the primary input for dex. If a pre-dex task sets it to |
- something else this has no effect --> |
- <property name="out.dex.input.absolute.dir" value="${out.classes.absolute.dir}" /> |
- |
- <dex executable="${dx}" |
- output="${intermediate.dex.file}" |
- dexedlibs="${out.dexed.absolute.dir}" |
- nolocals="@{nolocals}" |
- forceJumbo="${dex.force.jumbo}" |
- verbose="${verbose}"> |
- <path path="${out.dex.input.absolute.dir}"/> |
- <path refid="out.dex.jar.input.ref" /> |
- <external-libs /> |
- </dex> |
- </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"> |
- <element name="extra-jars" optional="yes" /> |
- <sequential> |
- <apkbuilder |
- outfolder="${out.absolute.dir}" |
- resourcefile="${resource.package.file.name}" |
- apkfilepath="${out.packaged.file}" |
- debugpackaging="${build.is.packaging.debug}" |
- debugsigning="${build.is.signing.debug}" |
- verbose="${verbose}" |
- hascode="${manifest.hasCode}" |
- previousBuildType="${build.last.is.packaging.debug}/${build.last.is.signing.debug}" |
- buildType="${build.is.packaging.debug}/${build.is.signing.debug}"> |
- <dex path="${intermediate.dex.file}"/> |
- <sourcefolder path="${source.absolute.dir}"/> |
- <nativefolder path="${native.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 and release.--> |
- <macrodef name="zipalign-helper"> |
- <attribute name="in.package" /> |
- <attribute name="out.package" /> |
- <sequential> |
- <zipalign |
- executable="${zipalign}" |
- input="@{in.package}" |
- output="@{out.package}" |
- verbose="${verbose}" /> |
- </sequential> |
- </macrodef> |
- |
<macrodef name="record-build-key"> |
<attribute name="key" default="false" /> |
<attribute name="value" default="false" /> |
@@ -498,11 +389,9 @@ |
<mkdir dir="${jar.libs.absolute.dir}" /> |
<mkdir dir="${out.absolute.dir}" /> |
<mkdir dir="${out.res.absolute.dir}" /> |
- <do-only-if-manifest-hasCode> |
- <mkdir dir="${gen.absolute.dir}" /> |
- <mkdir dir="${out.classes.absolute.dir}" /> |
- <mkdir dir="${out.dexed.absolute.dir}" /> |
- </do-only-if-manifest-hasCode> |
+ <mkdir dir="${gen.absolute.dir}" /> |
+ <mkdir dir="${out.classes.absolute.dir}" /> |
+ <mkdir dir="${out.dexed.absolute.dir}" /> |
</target> |
<!-- empty default pre-build target. Create a similar target in |
@@ -518,36 +407,32 @@ |
enabled="${manifestmerger.enabled}"> |
</mergemanifest> |
- <do-only-if-manifest-hasCode |
- elseText="hasCode = false. Skipping aidl/R.java"> |
- <echo level="info">----------</echo> |
- <echo level="info">Handling Resources...</echo> |
- <aapt executable="${aapt}" |
- command="package" |
- verbose="${verbose}" |
- manifest="${out.manifest.abs.file}" |
- androidjar="${project.target.android.jar}" |
- rfolder="${gen.absolute.dir}" |
- nonConstantId="${android.library}" |
- libraryResFolderPathRefid="project.library.res.folder.path" |
- libraryPackagesRefid="project.library.packages" |
- libraryRFileRefid="project.library.bin.r.file.path" |
- ignoreAssets="${aapt.ignore.assets}" |
- binFolder="${out.absolute.dir}" |
- proguardFile="${out.absolute.dir}/proguard.txt"> |
- <res path="${out.res.absolute.dir}" /> |
- <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="${build.last.is.packaging.debug}"/> |
- |
- </do-only-if-manifest-hasCode> |
+ <echo level="info">----------</echo> |
+ <echo level="info">Handling Resources...</echo> |
+ <aapt executable="${aapt}" |
+ command="package" |
+ verbose="${verbose}" |
+ manifest="${out.manifest.abs.file}" |
+ androidjar="${project.target.android.jar}" |
+ rfolder="${gen.absolute.dir}" |
+ nonConstantId="${android.library}" |
+ libraryResFolderPathRefid="project.library.res.folder.path" |
+ libraryPackagesRefid="project.library.packages" |
+ libraryRFileRefid="project.library.bin.r.file.path" |
+ ignoreAssets="${aapt.ignore.assets}" |
+ binFolder="${out.absolute.dir}" |
+ proguardFile="${out.absolute.dir}/proguard.txt"> |
+ <res path="${out.res.absolute.dir}" /> |
+ <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="${build.last.is.packaging.debug}"/> |
</target> |
<!-- empty default pre-compile target. Create a similar target in |
@@ -573,42 +458,39 @@ |
<target |
name="-compile" |
depends="-build-setup, -pre-build, -code-gen, -pre-compile"> |
- <do-only-if-manifest-hasCode elseText="hasCode = false. Skipping..." > |
- <javac |
- bootclasspathref="project.target.class.path" |
- classpathref="javac.custom.classpath" |
- debug="true" |
- destdir="${out.classes.absolute.dir}" |
- encoding="${java.encoding}" |
- extdirs="" |
- fork="${need.javac.fork}" |
- includeantruntime="false" |
- source="${java.source}" |
- target="${java.target}" |
- verbose="${verbose}"> |
- <src path="${source.absolute.dir}"/> |
- <src path="${gen.absolute.dir}"/> |
- <src> |
- <path refid="javac.srcdirs.additional"/> |
- </src> |
- <compilerarg value="-Xlint:unchecked"/> |
- <compilerarg line="${java.compilerargs}"/> |
- </javac> |
- <!-- |
- 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 |
- target's manifest. It is true only for instrumentation apks. |
- --> |
- <if condition="${project.is.testapp}"> |
- <then> |
- <property-location name="create.test.jar.file" |
- location="${CHROMIUM_SRC}/build/android/ant/create-test-jar.js"/> |
- <script language="javascript" src="${create.test.jar.file}"/> |
- </then> |
- </if> |
- |
- </do-only-if-manifest-hasCode> |
+ <javac |
+ bootclasspathref="project.target.class.path" |
+ classpathref="javac.custom.classpath" |
+ debug="true" |
+ destdir="${out.classes.absolute.dir}" |
+ encoding="${java.encoding}" |
+ extdirs="" |
+ fork="${need.javac.fork}" |
+ includeantruntime="false" |
+ source="${java.source}" |
+ target="${java.target}" |
+ verbose="${verbose}"> |
+ <src path="${source.absolute.dir}"/> |
+ <src path="${gen.absolute.dir}"/> |
+ <src> |
+ <path refid="javac.srcdirs.additional"/> |
+ </src> |
+ <compilerarg value="-Xlint:unchecked"/> |
+ <compilerarg line="${java.compilerargs}"/> |
+ </javac> |
+ <!-- |
+ 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 |
+ target's manifest. It is true only for instrumentation apks. |
+ --> |
+ <if condition="${project.is.testapp}"> |
+ <then> |
+ <property-location name="create.test.jar.file" |
+ location="${CHROMIUM_SRC}/build/android/ant/create-test-jar.js"/> |
+ <script language="javascript" src="${create.test.jar.file}"/> |
+ </then> |
+ </if> |
</target> |
<!-- empty default post-compile target. Create a similar target in |
@@ -736,15 +618,24 @@ |
<!-- Converts this project's .class files into .dex files --> |
<target name="-dex" depends="-compile, -post-compile, -obfuscate"> |
- <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..." > |
- <dex-helper /> |
- </do-only-if-not-library> |
- </do-only-if-manifest-hasCode> |
+ <sequential> |
+ <!-- sets the primary input for dex. If a pre-dex task sets it to |
+ something else this has no effect --> |
+ <property name="out.dex.input.absolute.dir" value="${out.classes.absolute.dir}" /> |
+ |
+ <dex executable="${dx}" |
+ output="${intermediate.dex.file}" |
+ dexedlibs="${out.dexed.absolute.dir}" |
+ nolocals="false" |
+ forceJumbo="${dex.force.jumbo}" |
+ verbose="${verbose}"> |
+ <path path="${out.dex.input.absolute.dir}"/> |
+ <path refid="out.dex.jar.input.ref" /> |
+ </dex> |
+ </sequential> |
</target> |
-<!-- Updates the pre-processed PNG cache --> |
+ <!-- Updates the pre-processed PNG cache --> |
<target name="-crunch"> |
<exec executable="${aapt}" taskName="crunch"> |
<arg value="crunch" /> |
@@ -762,40 +653,49 @@ |
declared in default.properties. |
--> |
<target name="-package-resources" depends="-crunch"> |
- <!-- only package resources if *not* a library project --> |
- <do-only-if-not-library elseText="Library project: do not package resources..." > |
- <aapt executable="${aapt}" |
- command="package" |
- versioncode="${version.code}" |
- versionname="${version.name}" |
- debug="${build.is.packaging.debug}" |
- manifest="${out.manifest.abs.file}" |
- assets="${asset.absolute.dir}" |
- androidjar="${project.target.android.jar}" |
- apkfolder="${out.absolute.dir}" |
- nocrunch="${build.packaging.nocrunch}" |
- resourcefilename="${resource.package.file.name}" |
- resourcefilter="${aapt.resource.filter}" |
- libraryResFolderPathRefid="project.library.res.folder.path" |
- libraryPackagesRefid="project.library.packages" |
- libraryRFileRefid="project.library.bin.r.file.path" |
- previousBuildType="${build.last.target}" |
- buildType="${build.target}" |
- ignoreAssets="${aapt.ignore.assets}"> |
- <res path="${out.res.absolute.dir}" /> |
- <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 --> |
- </aapt> |
- </do-only-if-not-library> |
+ <aapt executable="${aapt}" |
+ command="package" |
+ versioncode="${version.code}" |
+ versionname="${version.name}" |
+ debug="${build.is.packaging.debug}" |
+ manifest="${out.manifest.abs.file}" |
+ assets="${asset.absolute.dir}" |
+ androidjar="${project.target.android.jar}" |
+ apkfolder="${out.absolute.dir}" |
+ nocrunch="${build.packaging.nocrunch}" |
+ resourcefilename="${resource.package.file.name}" |
+ resourcefilter="${aapt.resource.filter}" |
+ libraryResFolderPathRefid="project.library.res.folder.path" |
+ libraryPackagesRefid="project.library.packages" |
+ libraryRFileRefid="project.library.bin.r.file.path" |
+ previousBuildType="${build.last.target}" |
+ buildType="${build.target}" |
+ ignoreAssets="${aapt.ignore.assets}"> |
+ <res path="${out.res.absolute.dir}" /> |
+ <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 --> |
+ </aapt> |
</target> |
<!-- Packages the application. --> |
<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..." > |
- <package-helper /> |
- </do-only-if-not-library> |
+ <sequential> |
+ <apkbuilder |
+ outfolder="${out.absolute.dir}" |
+ resourcefile="${resource.package.file.name}" |
+ apkfilepath="${out.packaged.file}" |
+ debugpackaging="${build.is.packaging.debug}" |
+ debugsigning="${build.is.signing.debug}" |
+ verbose="${verbose}" |
+ hascode="${manifest.hasCode}" |
+ previousBuildType="${build.last.is.packaging.debug}/${build.last.is.signing.debug}" |
+ buildType="${build.is.packaging.debug}/${build.is.signing.debug}"> |
+ <dex path="${intermediate.dex.file}"/> |
+ <sourcefolder path="${source.absolute.dir}"/> |
+ <nativefolder path="${native.libs.absolute.dir}" /> |
+ </apkbuilder> |
+ </sequential> |
</target> |
<target name="-post-package" /> |
@@ -850,17 +750,19 @@ |
<!-- Signs the APK --> |
<echo level="info">Signing final apk...</echo> |
<signapk |
- input="${out.packaged.file}" |
- output="${out.unaligned.file}" |
- keystore="${key.store}" |
- storepass="${key.store.password}" |
- alias="${key.alias}" |
- keypass="${key.alias.password}"/> |
+ input="${out.packaged.file}" |
+ output="${out.unaligned.file}" |
+ keystore="${key.store}" |
+ storepass="${key.store.password}" |
+ alias="${key.alias}" |
+ keypass="${key.alias.password}"/> |
<!-- Zip aligns the APK --> |
- <zipalign-helper |
- in.package="${out.unaligned.file}" |
- out.package="${out.final.file}" /> |
+ <zipalign |
+ executable="${zipalign}" |
+ input="${out.unaligned.file}" |
+ output="${out.final.file}" |
+ verbose="${verbose}" /> |
<echo level="info">Release Package: ${out.final.file}</echo> |
</sequential> |
</target> |