Index: build/android/ant/apk-build.xml |
diff --git a/build/android/ant/apk-build.xml b/build/android/ant/apk-build.xml |
deleted file mode 100644 |
index d123279a58de9a50fae3aa2abae0671542a50dd3..0000000000000000000000000000000000000000 |
--- a/build/android/ant/apk-build.xml |
+++ /dev/null |
@@ -1,605 +0,0 @@ |
-<?xml version="1.0" encoding="UTF-8"?> |
-<!-- |
- Copyright (C) 2005-2008 The Android Open Source Project |
- |
- Licensed under the Apache License, Version 2.0 (the "License"); |
- you may not use this file except in compliance with the License. |
- You may obtain a copy of the License at |
- |
- http://www.apache.org/licenses/LICENSE-2.0 |
- |
- Unless required by applicable law or agreed to in writing, software |
- distributed under the License is distributed on an "AS IS" BASIS, |
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
- See the License for the specific language governing permissions and |
- limitations under the License. |
---> |
- |
-<project name="android_rules" default="debug"> |
- |
- <property-location name="out.dir" location="${OUT_DIR}" check-exists="false" /> |
- |
- <path id="javac.srcdirs.additional"> |
- <filelist files="${ADDITIONAL_SRC_DIRS}"/> |
- <filelist files="${GENERATED_SRC_DIRS}"/> |
- </path> |
- |
- <!-- |
- Include additional resource folders in the apk, e.g. content/.../res. We |
- list the res folders in project.library.res.folder.path and the |
- corresponding java packages in project.library.packages, which must be |
- semicolon-delimited while ADDITIONAL_RES_PACKAGES is space-delimited, hence |
- the javascript task. |
- --> |
- <path id="project.library.res.folder.path"> |
- <filelist files="${ADDITIONAL_RES_DIRS}"/> |
- </path> |
- <path id="project.library.bin.r.file.path"> |
- <filelist files="${ADDITIONAL_R_TEXT_FILES}"/> |
- </path> |
- <path id="project.library.manifest.file.path"> |
- <filelist files="${LIBRARY_MANIFEST_PATHS}"/> |
- </path> |
- <script language="javascript"> |
- var before = project.getProperty("ADDITIONAL_RES_PACKAGES"); |
- project.setProperty("project.library.packages", before.replaceAll(" ", ";")); |
- </script> |
- |
- <property-value name="target.abi" value="${APP_ABI}"/> |
- |
- <!-- |
- We use the PROGUARD_ENABLED flag for enabling proguard. By default proguard is enabled for |
- Release builds if proguard.config is set. Setting proguard.config even to an empty string will |
- enable proguard. Set this property only when we have explicitly enabled proguard. |
- --> |
- <condition property="proguard.config" value="${PROGUARD_FLAGS}"> |
- <istrue value="${PROGUARD_ENABLED}"/> |
- </condition> |
- |
- <!-- Set the output directory for the final apk to the ${apks.dir}. --> |
- <property-location name="out.final.file" |
- location="${apks.dir}/${ant.project.name}.apk" |
- check-exists="false"/> |
- |
- <!-- Classpath for javac --> |
- <path id="javac.custom.classpath"> |
- <filelist files="${INPUT_JARS_PATHS}"/> |
- </path> |
- |
- <!-- |
- TODO(cjhopman): This is wrong for proguard builds. In that case, it should be just the |
- obfuscated jar. |
- --> |
- <path id="out.dex.jar.input.ref"> |
- <path refid="javac.custom.classpath"/> |
- </path> |
- |
- <path id="native.libs.gdbserver"> |
- <fileset file="${android.gdbserver}"/> |
- </path> |
- |
- <!-- Disables automatic signing. --> |
- <property name="build.is.signing.debug" value="false"/> |
- |
- <!-- SDK tools assume that out.packaged.file is signed and name it "...-unaligned" --> |
- <property name="out.packaged.file" |
- value="${apks.dir}/${ant.project.name}-unsigned.apk" /> |
- <property name="out.unaligned.file" |
- value="${apks.dir}/${ant.project.name}-unaligned.apk" /> |
- |
- <!-- fileset exclude patterns (space separated) to prevent |
- files inside src/ from being packaged. --> |
- <property name="android.package.excludes" value="" /> |
- |
- <!-- set some properties used for filtering/override. If those weren't defined |
- before, then this will create them with empty values, which are then ignored |
- by the custom tasks receiving them. --> |
- <property-value name="version.code" value="${APP_MANIFEST_VERSION_CODE}"/> |
- <property-value name="version.name" value="${APP_MANIFEST_VERSION_NAME}"/> |
- |
- <property name="aapt.resource.filter" value="" /> |
- <!-- 'aapt.ignore.assets' is the list of file patterns to ignore under /res and /assets. |
- Default is "!.svn:!.git:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~" |
- |
- Overall patterns syntax is: |
- [!][<dir>|<file>][*suffix-match|prefix-match*|full-match]:more:patterns... |
- |
- - The first character flag ! avoids printing a warning. |
- - Pattern can have the flag "<dir>" to match only directories |
- or "<file>" to match only files. Default is to match both. |
- - Match is not case-sensitive. |
- --> |
- <property name="aapt.ignore.assets" value="" /> |
- |
- <!-- compilation options --> |
- <property name="java.encoding" value="UTF-8" /> |
- <property name="java.target" value="1.5" /> |
- <property name="java.source" value="1.5" /> |
- <property name="java.compilerargs" value="" /> |
- |
- <!-- manifest merger default value if it's not set.--> |
- <condition property="manifestmerger.enabled" |
- value="false" |
- else="true"> |
- <equals arg1="${LIBRARY_MANIFEST_PATHS}" arg2=""/> |
- </condition> |
- |
- <!-- Verbosity --> |
- <property name="verbose" value="false" /> |
- |
- <!-- ******************************************************* --> |
- <!-- ********************* Custom Tasks ******************** --> |
- <!-- ******************************************************* --> |
- |
- <!-- jar file from where the tasks are loaded --> |
- <path id="android.antlibs"> |
- <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" /> |
- </path> |
- |
- <!-- Custom tasks --> |
- <taskdef resource="anttasks.properties" classpathref="android.antlibs" /> |
- |
- <!-- ******************************************************* --> |
- <!-- ******************* Other Properties ****************** --> |
- <!-- ******************************************************* --> |
- <!-- 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}" /> |
- <property-value name="gen.absolute.dir" value="${out.dir}/gen"/> |
- <property name="resource.absolute.dir" value="${RESOURCE_DIR}"/> |
- <property name="asset.dir" value="assets" /> |
- <condition property="asset.absolute.dir" |
- value="${out.dir}/assets" |
- else="${ASSET_DIR}"> |
- <equals arg1="${ASSET_DIR}" arg2=""/> |
- </condition> |
- |
- <property-location name="native.libs.absolute.dir" location="${out.dir}/libs" |
- check-exists="false"/> |
- |
- <property name="manifest.file" value="AndroidManifest.xml" /> |
- <property name="manifest.abs.file" location="${manifest.file}" /> |
- |
- <!-- Output directories --> |
- <property name="out.dir" value="bin" /> |
- <property name="out.absolute.dir" location="${out.dir}" /> |
- <property name="out.classes.absolute.dir" location="${out.dir}/classes" /> |
- <property name="out.res.absolute.dir" location="${out.dir}/res" /> |
- <property name="out.aidl.absolute.dir" location="${out.dir}/aidl" /> |
- <property name="out.dexed.absolute.dir" location="${out.dir}/dexedLibs" /> |
- <property name="out.manifest.abs.file" location="${out.dir}/AndroidManifest.xml" /> |
- |
- <!-- tools location --> |
- <property name="android.tools.dir" location="${sdk.dir}/tools" /> |
- <property name="android.platform.tools.dir" location="${sdk.dir}/platform-tools" /> |
- <property name="exe" value="" /> |
- <property name="bat" value="" /> |
- <property name="zipalign" location="${android.tools.dir}/zipalign${exe}" /> |
- <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}" /> |
- |
- <!-- Intermediate files --> |
- <property name="dex.file.name" value="classes.dex" /> |
- <property name="intermediate.dex.file" location="${out.absolute.dir}/${dex.file.name}" /> |
- <property name="resource.package.file.name" value="${ant.project.name}.ap_" /> |
- |
- <!-- Build property file --> |
- <property name="out.build.prop.file" location="${out.absolute.dir}/build.prop" /> |
- |
- <!-- |
- For debug builds, the Android SDK tools create a key in ~/.android and sign the build with it. |
- This has caused all kinds of issues. Instead, the debug build should be signed with a key in |
- build/android/ant. The SDK tools do not provide any support for overriding that behavior and so |
- instead one must use the hack below. |
- --> |
- <property name="key.store" value="${CHROMIUM_SRC}/build/android/ant/chromium-debug.keystore"/> |
- <property name="key.store.password" value="chromium"/> |
- <property name="key.alias" value="chromiumdebugkey"/> |
- <property name="key.alias.password" value="chromium"/> |
- |
- <!-- properties for packaging --> |
- <property name="build.packaging.nocrunch" value="true" /> |
- |
- <property name="need.javac.fork" value="false" /> |
- |
- <!-- ******************************************************* --> |
- <!-- ******************** Build Targets ******************** --> |
- <!-- ******************************************************* --> |
- |
- <!-- generic setup --> |
- <target name="-setup"> |
- <checkenv /> |
- <echo level="info">Project Name: ${ant.project.name}</echo> |
- <gettype projectTypeOut="project.type" /> |
- |
- <!-- sets a few boolean based on project.type |
- to make the if task easier --> |
- <condition property="project.is.testapp" value="true" else="false"> |
- <equals arg1="${project.type}" arg2="test-app" /> |
- </condition> |
- |
- <!-- get the project manifest package --> |
- <xpath input="${manifest.abs.file}" |
- expression="/manifest/@package" output="project.app.package" /> |
- |
- <!-- read the previous build mode --> |
- <property file="${out.build.prop.file}" /> |
- |
- <echo level="info">Resolving Build Target for ${ant.project.name}...</echo> |
- <!-- load project properties, resolve Android target, library dependencies |
- and set some properties with the results. |
- All property names are passed as parameters ending in -Out --> |
- <gettarget |
- androidJarFileOut="project.target.android.jar" |
- androidAidlFileOut="project.target.framework.aidl" |
- bootClassPathOut="project.target.class.path" |
- targetApiOut="project.target.apilevel" |
- minSdkVersionOut="project.minSdkVersion" /> |
- |
- <property name="manifest.hasCode" value="true" /> |
- |
- <echo level="info">----------</echo> |
- <echo level="info">Creating output directories if needed...</echo> |
- <mkdir dir="${out.absolute.dir}" /> |
- <mkdir dir="${out.res.absolute.dir}" /> |
- <mkdir dir="${gen.absolute.dir}" /> |
- <mkdir dir="${out.classes.absolute.dir}" /> |
- <mkdir dir="${out.dexed.absolute.dir}" /> |
- </target> |
- |
- <!-- Code Generation: compile resources (aapt -> R.java), aidl --> |
- <target name="-code-gen" depends="-setup"> |
- <!-- always merge manifest --> |
- <mergemanifest |
- appManifest="${manifest.abs.file}" |
- outManifest="${out.manifest.abs.file}" |
- enabled="${manifestmerger.enabled}"> |
- <library refid="project.library.manifest.file.path" /> |
- </mergemanifest> |
- |
- <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> |
- |
- </target> |
- |
- <!-- |
- Override the -compile target. |
- This target requires 'javac.custom.classpath' to be set to reference |
- of classpath to be used for javac. Also accepts custom path for |
- sources: 'javac.custom.sourcepath'. |
- --> |
- <!-- Compiles this project's .java files into .class files. --> |
- <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" |
- 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> |
- <!-- |
- Copy gdbserver to main libs directory if building a non-instrumentation debug apk. |
- --> |
- <if> |
- <condition> |
- <and> |
- <equals arg1="${build.target}" arg2="debug"/> |
- <isfalse value="${project.is.testapp}"/> |
- </and> |
- </condition> |
- <then> |
- <copy todir="${out.dir}/libs/${target.abi}"> |
- <path refid="native.libs.gdbserver"/> |
- </copy> |
- </then> |
- </if> |
- |
- <!-- Package all the compiled .class files into a .jar. --> |
- <jar |
- jarfile="${lib.java.dir}/${JAR_NAME}" |
- basedir="${out.classes.absolute.dir}" |
- /> |
- </target> |
- |
- |
- <!-- Obfuscate target |
- This is only active in release builds when proguard.config is defined |
- in default.properties. |
- |
- --> |
- <!-- |
- 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" depends="-compile"> |
- <if condition="${proguard.enabled}"> |
- <then> |
- <property name="obfuscate.absolute.dir" location="${out.absolute.dir}/proguard"/> |
- <property name="preobfuscate.jar.file" value="${obfuscate.absolute.dir}/original.jar"/> |
- <property name="obfuscated.jar.file" value="${obfuscate.absolute.dir}/obfuscated.jar"/> |
- <!-- input for dex will be proguard's output --> |
- <property name="out.dex.input.absolute.dir" value="${obfuscated.jar.file}"/> |
- |
- <!-- Add Proguard Tasks --> |
- <property name="proguard.jar" location="${android.tools.dir}/proguard/lib/proguard.jar"/> |
- <taskdef name="proguard" classname="proguard.ant.ProGuardTask" classpath="${proguard.jar}"/> |
- |
- <!-- Set the android classpath Path object into a single property. It'll be |
- all the jar files separated by a platform path-separator. |
- Each path must be quoted if it contains spaces. |
- --> |
- <pathconvert property="project.target.classpath.value" refid="project.target.class.path"> |
- <firstmatchmapper> |
- <regexpmapper from='^([^ ]*)( .*)$$' to='"\1\2"'/> |
- <identitymapper/> |
- </firstmatchmapper> |
- </pathconvert> |
- |
- <!-- Build a path object with all the jar files that must be obfuscated. |
- This include the project compiled source code and any 3rd party jar |
- files. --> |
- <path id="project.all.classes.path"> |
- <pathelement location="${preobfuscate.jar.file}"/> |
- <!-- Pass javac.custom.classpath for apks. --> |
- <path refid="javac.custom.classpath"/> |
- </path> |
- <!-- Set the project jar files Path object into a single property. It'll be |
- all the jar files separated by a platform path-separator. |
- Each path must be quoted if it contains spaces. |
- --> |
- <pathconvert property="project.all.classes.value" refid="project.all.classes.path"> |
- <firstmatchmapper> |
- <regexpmapper from='^([^ ]*)( .*)$$' to='"\1\2"'/> |
- <identitymapper/> |
- </firstmatchmapper> |
- </pathconvert> |
- |
- <!-- Turn the path property ${proguard.config} from an A:B:C property |
- into a series of includes: -include A -include B -include C |
- suitable for processing by the ProGuard task. Note - this does |
- not include the leading '-include "' or the closing '"'; those |
- are added under the <proguard> call below. |
- --> |
- <path id="proguard.configpath"> |
- <pathelement path="${proguard.config}"/> |
- </path> |
- <pathconvert pathsep='" -include "' property="proguard.configcmd" |
- refid="proguard.configpath"/> |
- |
- <mkdir dir="${obfuscate.absolute.dir}"/> |
- <delete file="${preobfuscate.jar.file}"/> |
- <delete file="${obfuscated.jar.file}"/> |
- <jar basedir="${out.classes.absolute.dir}" |
- destfile="${preobfuscate.jar.file}"/> |
- <proguard> |
- -include "${proguard.configcmd}" |
- -include "${out.absolute.dir}/proguard.txt" |
- -injars ${project.all.classes.value} |
- -outjars "${obfuscated.jar.file}" |
- -libraryjars ${project.target.classpath.value} |
- -dump "${obfuscate.absolute.dir}/dump.txt" |
- -printseeds "${obfuscate.absolute.dir}/seeds.txt" |
- -printusage "${obfuscate.absolute.dir}/usage.txt" |
- -printmapping "${obfuscate.absolute.dir}/mapping.txt" |
- </proguard> |
- </then> |
- </if> |
- </target> |
- |
- <!-- Converts this project's .class files into .dex files --> |
- <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 --> |
- <property name="out.dex.input.absolute.dir" value="${out.classes.absolute.dir}" /> |
- <property name="dex.force.jumbo" value="false" /> |
- |
- <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> |
- |
- <!-- 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" /> |
- <arg value="-S" /> |
- <arg path="${resource.absolute.dir}" /> |
- <arg value="-C" /> |
- <arg path="${out.res.absolute.dir}" /> |
- </exec> |
- <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="" |
- 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"> |
- <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="/" |
- 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> |
- </target> |
- |
- <!-- Signs and zipaligns the apk. --> |
- <target name="-do-sign" depends="-package"> |
- <sequential> |
- <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}"/> |
- |
- <zipalign |
- executable="${zipalign}" |
- input="${out.unaligned.file}" |
- output="${out.final.file}" |
- verbose="${verbose}" /> |
- <echo level="info">Release Package: ${out.final.file}</echo> |
- </sequential> |
- </target> |
- |
- <!-- Builds debug output package --> |
- <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, -do-sign" |
- description="Builds the application in release mode."> |
- </target> |
- |
-</project> |