Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(378)

Side by Side Diff: build/android/ant/apk-build.xml

Issue 12963009: Split apk-build.xml into 3 steps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « android_webview/android_webview_tests.gypi ('k') | build/android/ant/apk-codegen.xml » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3 Copyright (C) 2005-2008 The Android Open Source Project
4
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16 -->
17
18 <project name="android_rules" default="debug">
19
20 <property-location name="out.dir" location="${OUT_DIR}" check-exists="false" />
21
22 <path id="javac.srcdirs.additional">
23 <filelist files="${ADDITIONAL_SRC_DIRS}"/>
24 <filelist files="${GENERATED_SRC_DIRS}"/>
25 </path>
26
27 <!--
28 Include additional resource folders in the apk, e.g. content/.../res. We
29 list the res folders in project.library.res.folder.path and the
30 corresponding java packages in project.library.packages, which must be
31 semicolon-delimited while ADDITIONAL_RES_PACKAGES is space-delimited, henc e
32 the javascript task.
33 -->
34 <path id="project.library.res.folder.path">
35 <filelist files="${ADDITIONAL_RES_DIRS}"/>
36 </path>
37 <path id="project.library.bin.r.file.path">
38 <filelist files="${ADDITIONAL_R_TEXT_FILES}"/>
39 </path>
40 <path id="project.library.manifest.file.path">
41 <filelist files="${LIBRARY_MANIFEST_PATHS}"/>
42 </path>
43 <script language="javascript">
44 var before = project.getProperty("ADDITIONAL_RES_PACKAGES");
45 project.setProperty("project.library.packages", before.replaceAll(" ", ";" ));
46 </script>
47
48 <property-value name="target.abi" value="${APP_ABI}"/>
49
50 <!--
51 We use the PROGUARD_ENABLED flag for enabling proguard. By default proguar d is enabled for
52 Release builds if proguard.config is set. Setting proguard.config even to an empty string will
53 enable proguard. Set this property only when we have explicitly enabled pr oguard.
54 -->
55 <condition property="proguard.config" value="${PROGUARD_FLAGS}">
56 <istrue value="${PROGUARD_ENABLED}"/>
57 </condition>
58
59 <!-- Set the output directory for the final apk to the ${apks.dir}. -->
60 <property-location name="out.final.file"
61 location="${apks.dir}/${ant.project.name}.apk"
62 check-exists="false"/>
63
64 <!-- Classpath for javac -->
65 <path id="javac.custom.classpath">
66 <filelist files="${INPUT_JARS_PATHS}"/>
67 </path>
68
69 <!--
70 TODO(cjhopman): This is wrong for proguard builds. In that case, it should be just the
71 obfuscated jar.
72 -->
73 <path id="out.dex.jar.input.ref">
74 <path refid="javac.custom.classpath"/>
75 </path>
76
77 <path id="native.libs.gdbserver">
78 <fileset file="${android.gdbserver}"/>
79 </path>
80
81 <!-- Disables automatic signing. -->
82 <property name="build.is.signing.debug" value="false"/>
83
84 <!-- SDK tools assume that out.packaged.file is signed and name it "...-unal igned" -->
85 <property name="out.packaged.file"
86 value="${apks.dir}/${ant.project.name}-unsigned.apk" />
87 <property name="out.unaligned.file"
88 value="${apks.dir}/${ant.project.name}-unaligned.apk" />
89
90 <!-- fileset exclude patterns (space separated) to prevent
91 files inside src/ from being packaged. -->
92 <property name="android.package.excludes" value="" />
93
94 <!-- set some properties used for filtering/override. If those weren't defin ed
95 before, then this will create them with empty values, which are then ig nored
96 by the custom tasks receiving them. -->
97 <property-value name="version.code" value="${APP_MANIFEST_VERSION_CODE}"/>
98 <property-value name="version.name" value="${APP_MANIFEST_VERSION_NAME}"/>
99
100 <property name="aapt.resource.filter" value="" />
101 <!-- 'aapt.ignore.assets' is the list of file patterns to ignore under /res and /assets.
102 Default is "!.svn:!.git:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:* ~"
103
104 Overall patterns syntax is:
105 [!][<dir>|<file>][*suffix-match|prefix-match*|full-match]:more:patter ns...
106
107 - The first character flag ! avoids printing a warning.
108 - Pattern can have the flag "<dir>" to match only directories
109 or "<file>" to match only files. Default is to match both.
110 - Match is not case-sensitive.
111 -->
112 <property name="aapt.ignore.assets" value="" />
113
114 <!-- compilation options -->
115 <property name="java.encoding" value="UTF-8" />
116 <property name="java.target" value="1.5" />
117 <property name="java.source" value="1.5" />
118 <property name="java.compilerargs" value="" />
119
120 <!-- manifest merger default value if it's not set.-->
121 <condition property="manifestmerger.enabled"
122 value="false"
123 else="true">
124 <equals arg1="${LIBRARY_MANIFEST_PATHS}" arg2=""/>
125 </condition>
126
127 <!-- Verbosity -->
128 <property name="verbose" value="false" />
129
130 <!-- ******************************************************* -->
131 <!-- ********************* Custom Tasks ******************** -->
132 <!-- ******************************************************* -->
133
134 <!-- jar file from where the tasks are loaded -->
135 <path id="android.antlibs">
136 <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
137 </path>
138
139 <!-- Custom tasks -->
140 <taskdef resource="anttasks.properties" classpathref="android.antlibs" />
141
142 <!-- ******************************************************* -->
143 <!-- ******************* Other Properties ****************** -->
144 <!-- ******************************************************* -->
145 <!-- overriding these properties may break the build
146 unless the whole file is updated -->
147
148 <target name="-set-release-mode">
149 <!-- record the current build target -->
150 <property name="build.target" value="release" />
151
152 <!-- release mode is only valid if the manifest does not explicitly
153 set debuggable to true. default is false. -->
154 <xpath input="${manifest.abs.file}" expression="/manifest/application/@a ndroid:debuggable"
155 output="build.is.packaging.debug" default="false"/>
156
157 <if condition="${build.is.packaging.debug}">
158 <then>
159 <echo>*************************************************</echo>
160 <echo>**** Android Manifest has debuggable=true ****</echo>
161 <echo>**** Doing DEBUG packaging with RELEASE keys ****</echo>
162 <echo>*************************************************</echo>
163 </then>
164 <else>
165 <!-- property only set in release mode.
166 Useful for if/unless attributes in target node
167 when using Ant before 1.8 -->
168 <property name="build.is.mode.release" value="true"/>
169 </else>
170 </if>
171
172 <echo level="info">proguard.config is ${proguard.config}</echo>
173 <condition property="proguard.enabled" value="true" else="false">
174 <and>
175 <isset property="build.is.mode.release" />
176 <isset property="proguard.config" />
177 </and>
178 </condition>
179 <if condition="${proguard.enabled}">
180 <then>
181 <echo level="info">Proguard.config is enabled</echo>
182 <!-- Secondary dx input (jar files) is empty since all the
183 jar files will be in the obfuscated jar -->
184 <path id="out.dex.jar.input.ref" />
185 </then>
186 </if>
187 </target>
188
189 <target name="-set-debug-mode">
190 <!-- record the current build target -->
191 <property name="build.target" value="debug" />
192
193 <!-- whether the build is a debug build. always set. -->
194 <property name="build.is.packaging.debug" value="true" />
195
196 <!-- proguard is never enabled in debug mode -->
197 <property name="proguard.enabled" value="false"/>
198 </target>
199
200
201 <!-- Input directories -->
202 <property name="source.dir" value="src" />
203 <property name="source.absolute.dir" location="${source.dir}" />
204 <property-value name="gen.absolute.dir" value="${out.dir}/gen"/>
205 <property name="resource.absolute.dir" value="${RESOURCE_DIR}"/>
206 <property name="asset.dir" value="assets" />
207 <condition property="asset.absolute.dir"
208 value="${out.dir}/assets"
209 else="${ASSET_DIR}">
210 <equals arg1="${ASSET_DIR}" arg2=""/>
211 </condition>
212
213 <property-location name="native.libs.absolute.dir" location="${out.dir}/libs "
214 check-exists="false"/>
215
216 <property name="manifest.file" value="AndroidManifest.xml" />
217 <property name="manifest.abs.file" location="${manifest.file}" />
218
219 <!-- Output directories -->
220 <property name="out.dir" value="bin" />
221 <property name="out.absolute.dir" location="${out.dir}" />
222 <property name="out.classes.absolute.dir" location="${out.dir}/classes" />
223 <property name="out.res.absolute.dir" location="${out.dir}/res" />
224 <property name="out.aidl.absolute.dir" location="${out.dir}/aidl" />
225 <property name="out.dexed.absolute.dir" location="${out.dir}/dexedLibs" />
226 <property name="out.manifest.abs.file" location="${out.dir}/AndroidManifest. xml" />
227
228 <!-- tools location -->
229 <property name="android.tools.dir" location="${sdk.dir}/tools" />
230 <property name="android.platform.tools.dir" location="${sdk.dir}/platform-to ols" />
231 <property name="exe" value="" />
232 <property name="bat" value="" />
233 <property name="zipalign" location="${android.tools.dir}/zipalign${exe}" />
234 <property name="aidl" location="${android.platform.tools.dir}/aidl${exe}" />
235 <property name="aapt" location="${android.platform.tools.dir}/aapt${exe}" />
236 <property name="dx" location="${android.platform.tools.dir}/dx${bat}" />
237
238 <!-- Intermediate files -->
239 <property name="dex.file.name" value="classes.dex" />
240 <property name="intermediate.dex.file" location="${out.absolute.dir}/${dex.f ile.name}" />
241 <property name="resource.package.file.name" value="${ant.project.name}.ap_" />
242
243 <!-- Build property file -->
244 <property name="out.build.prop.file" location="${out.absolute.dir}/build.pro p" />
245
246 <!--
247 For debug builds, the Android SDK tools create a key in ~/.android and sig n the build with it.
248 This has caused all kinds of issues. Instead, the debug build should be si gned with a key in
249 build/android/ant. The SDK tools do not provide any support for overriding that behavior and so
250 instead one must use the hack below.
251 -->
252 <property name="key.store" value="${CHROMIUM_SRC}/build/android/ant/chromium -debug.keystore"/>
253 <property name="key.store.password" value="chromium"/>
254 <property name="key.alias" value="chromiumdebugkey"/>
255 <property name="key.alias.password" value="chromium"/>
256
257 <!-- properties for packaging -->
258 <property name="build.packaging.nocrunch" value="true" />
259
260 <property name="need.javac.fork" value="false" />
261
262 <!-- ******************************************************* -->
263 <!-- ******************** Build Targets ******************** -->
264 <!-- ******************************************************* -->
265
266 <!-- generic setup -->
267 <target name="-setup">
268 <checkenv />
269 <echo level="info">Project Name: ${ant.project.name}</echo>
270 <gettype projectTypeOut="project.type" />
271
272 <!-- sets a few boolean based on project.type
273 to make the if task easier -->
274 <condition property="project.is.testapp" value="true" else="false">
275 <equals arg1="${project.type}" arg2="test-app" />
276 </condition>
277
278 <!-- get the project manifest package -->
279 <xpath input="${manifest.abs.file}"
280 expression="/manifest/@package" output="project.app.package" />
281
282 <!-- read the previous build mode -->
283 <property file="${out.build.prop.file}" />
284
285 <echo level="info">Resolving Build Target for ${ant.project.name}...</ec ho>
286 <!-- load project properties, resolve Android target, library dependenci es
287 and set some properties with the results.
288 All property names are passed as parameters ending in -Out -->
289 <gettarget
290 androidJarFileOut="project.target.android.jar"
291 androidAidlFileOut="project.target.framework.aidl"
292 bootClassPathOut="project.target.class.path"
293 targetApiOut="project.target.apilevel"
294 minSdkVersionOut="project.minSdkVersion" />
295
296 <property name="manifest.hasCode" value="true" />
297
298 <echo level="info">----------</echo>
299 <echo level="info">Creating output directories if needed...</echo>
300 <mkdir dir="${out.absolute.dir}" />
301 <mkdir dir="${out.res.absolute.dir}" />
302 <mkdir dir="${gen.absolute.dir}" />
303 <mkdir dir="${out.classes.absolute.dir}" />
304 <mkdir dir="${out.dexed.absolute.dir}" />
305 </target>
306
307 <!-- Code Generation: compile resources (aapt -> R.java), aidl -->
308 <target name="-code-gen" depends="-setup">
309 <!-- always merge manifest -->
310 <mergemanifest
311 appManifest="${manifest.abs.file}"
312 outManifest="${out.manifest.abs.file}"
313 enabled="${manifestmerger.enabled}">
314 <library refid="project.library.manifest.file.path" />
315 </mergemanifest>
316
317 <echo level="info">----------</echo>
318 <echo level="info">Handling Resources...</echo>
319 <aapt executable="${aapt}"
320 command="package"
321 verbose="${verbose}"
322 manifest="${out.manifest.abs.file}"
323 androidjar="${project.target.android.jar}"
324 rfolder="${gen.absolute.dir}"
325 nonConstantId="${android.library}"
326 libraryResFolderPathRefid="project.library.res.folder.path"
327 libraryPackagesRefid="project.library.packages"
328 libraryRFileRefid="project.library.bin.r.file.path"
329 ignoreAssets="${aapt.ignore.assets}"
330 binFolder="${out.absolute.dir}"
331 proguardFile="${out.absolute.dir}/proguard.txt">
332 <res path="${out.res.absolute.dir}" />
333 <res path="${resource.absolute.dir}" />
334 </aapt>
335
336 </target>
337
338 <!--
339 Override the -compile target.
340 This target requires 'javac.custom.classpath' to be set to reference
341 of classpath to be used for javac. Also accepts custom path for
342 sources: 'javac.custom.sourcepath'.
343 -->
344 <!-- Compiles this project's .java files into .class files. -->
345 <target name="-compile" depends="-code-gen">
346 <delete>
347 <fileset dir="${out.classes.absolute.dir}" includes="**/*.class"/>
348 </delete>
349
350 <javac
351 bootclasspathref="project.target.class.path"
352 classpathref="javac.custom.classpath"
353 debug="true"
354 destdir="${out.classes.absolute.dir}"
355 encoding="${java.encoding}"
356 extdirs=""
357 fork="${need.javac.fork}"
358 includeantruntime="false"
359 source="${java.source}"
360 target="${java.target}"
361 verbose="${verbose}">
362 <src path="${source.absolute.dir}"/>
363 <src path="${gen.absolute.dir}"/>
364 <src>
365 <path refid="javac.srcdirs.additional"/>
366 </src>
367 <compilerarg value="-Xlint:unchecked"/>
368 <compilerarg line="${java.compilerargs}"/>
369 </javac>
370 <!--
371 If the project needs a test jar then generate a jar containing
372 all compiled classes and referenced jars.
373 project.is.testapp is set by Android's ant build system based on the
374 target's manifest. It is true only for instrumentation apks.
375 -->
376 <if condition="${project.is.testapp}">
377 <then>
378 <property-location name="create.test.jar.file"
379 location="${CHROMIUM_SRC}/build/android/ant/create-test-jar.js"/>
380 <script language="javascript" src="${create.test.jar.file}"/>
381 </then>
382 </if>
383 <!--
384 Copy gdbserver to main libs directory if building a non-instrumentation debug apk.
385 -->
386 <if>
387 <condition>
388 <and>
389 <equals arg1="${build.target}" arg2="debug"/>
390 <isfalse value="${project.is.testapp}"/>
391 </and>
392 </condition>
393 <then>
394 <copy todir="${out.dir}/libs/${target.abi}">
395 <path refid="native.libs.gdbserver"/>
396 </copy>
397 </then>
398 </if>
399
400 <!-- Package all the compiled .class files into a .jar. -->
401 <jar
402 jarfile="${lib.java.dir}/${JAR_NAME}"
403 basedir="${out.classes.absolute.dir}"
404 />
405 </target>
406
407
408 <!-- Obfuscate target
409 This is only active in release builds when proguard.config is defined
410 in default.properties.
411
412 -->
413 <!--
414 Override obfuscate target to pass javac.custom.classpath to Proguard. SDK tools do not provide
415 any way to pass custom class paths to Proguard.
416 -->
417 <target name="-obfuscate" depends="-compile">
418 <if condition="${proguard.enabled}">
419 <then>
420 <property name="obfuscate.absolute.dir" location="${out.absolute.dir}/ proguard"/>
421 <property name="preobfuscate.jar.file" value="${obfuscate.absolute.dir }/original.jar"/>
422 <property name="obfuscated.jar.file" value="${obfuscate.absolute.dir}/ obfuscated.jar"/>
423 <!-- input for dex will be proguard's output -->
424 <property name="out.dex.input.absolute.dir" value="${obfuscated.jar.fi le}"/>
425
426 <!-- Add Proguard Tasks -->
427 <property name="proguard.jar" location="${android.tools.dir}/proguard/ lib/proguard.jar"/>
428 <taskdef name="proguard" classname="proguard.ant.ProGuardTask" classpa th="${proguard.jar}"/>
429
430 <!-- Set the android classpath Path object into a single property. It' ll be
431 all the jar files separated by a platform path-separator.
432 Each path must be quoted if it contains spaces.
433 -->
434 <pathconvert property="project.target.classpath.value" refid="project. target.class.path">
435 <firstmatchmapper>
436 <regexpmapper from='^([^ ]*)( .*)$$' to='"\1\2"'/>
437 <identitymapper/>
438 </firstmatchmapper>
439 </pathconvert>
440
441 <!-- Build a path object with all the jar files that must be obfuscate d.
442 This include the project compiled source code and any 3rd party j ar
443 files. -->
444 <path id="project.all.classes.path">
445 <pathelement location="${preobfuscate.jar.file}"/>
446 <!-- Pass javac.custom.classpath for apks. -->
447 <path refid="javac.custom.classpath"/>
448 </path>
449 <!-- Set the project jar files Path object into a single property. It' ll be
450 all the jar files separated by a platform path-separator.
451 Each path must be quoted if it contains spaces.
452 -->
453 <pathconvert property="project.all.classes.value" refid="project.all.c lasses.path">
454 <firstmatchmapper>
455 <regexpmapper from='^([^ ]*)( .*)$$' to='"\1\2"'/>
456 <identitymapper/>
457 </firstmatchmapper>
458 </pathconvert>
459
460 <!-- Turn the path property ${proguard.config} from an A:B:C property
461 into a series of includes: -include A -include B -include C
462 suitable for processing by the ProGuard task. Note - this does
463 not include the leading '-include "' or the closing '"'; those
464 are added under the <proguard> call below.
465 -->
466 <path id="proguard.configpath">
467 <pathelement path="${proguard.config}"/>
468 </path>
469 <pathconvert pathsep='" -include "' property="proguard.configcmd"
470 refid="proguard.configpath"/>
471
472 <mkdir dir="${obfuscate.absolute.dir}"/>
473 <delete file="${preobfuscate.jar.file}"/>
474 <delete file="${obfuscated.jar.file}"/>
475 <jar basedir="${out.classes.absolute.dir}"
476 destfile="${preobfuscate.jar.file}"/>
477 <proguard>
478 -include "${proguard.configcmd}"
479 -include "${out.absolute.dir}/proguard.txt"
480 -injars ${project.all.classes.value}
481 -outjars "${obfuscated.jar.file}"
482 -libraryjars ${project.target.classpath.value}
483 -dump "${obfuscate.absolute.dir}/dump.txt"
484 -printseeds "${obfuscate.absolute.dir}/seeds.txt"
485 -printusage "${obfuscate.absolute.dir}/usage.txt"
486 -printmapping "${obfuscate.absolute.dir}/mapping.txt"
487 </proguard>
488 </then>
489 </if>
490 </target>
491
492 <!-- Converts this project's .class files into .dex files -->
493 <target name="-dex" depends="-obfuscate">
494 <sequential>
495 <!-- sets the primary input for dex. If a pre-dex task sets it to
496 something else this has no effect -->
497 <property name="out.dex.input.absolute.dir" value="${out.classes.abs olute.dir}" />
498 <property name="dex.force.jumbo" value="false" />
499
500 <dex executable="${dx}"
501 output="${intermediate.dex.file}"
502 dexedlibs="${out.dexed.absolute.dir}"
503 nolocals="false"
504 forceJumbo="${dex.force.jumbo}"
505 verbose="${verbose}">
506 <path path="${out.dex.input.absolute.dir}"/>
507 <path refid="out.dex.jar.input.ref" />
508 </dex>
509 </sequential>
510 </target>
511
512 <!-- Puts the project's resources into the output package file
513 This actually can create multiple resource package in case
514 Some custom apk with specific configuration have been
515 declared in default.properties.
516 -->
517 <target name="-package-resources" depends="-setup">
518 <!-- Updates the pre-processed PNG cache -->
519 <exec executable="${aapt}" taskName="crunch">
520 <arg value="crunch" />
521 <arg value="-v" />
522 <arg value="-S" />
523 <arg path="${resource.absolute.dir}" />
524 <arg value="-C" />
525 <arg path="${out.res.absolute.dir}" />
526 </exec>
527 <aapt executable="${aapt}"
528 command="package"
529 versioncode="${version.code}"
530 versionname="${version.name}"
531 debug="${build.is.packaging.debug}"
532 manifest="${out.manifest.abs.file}"
533 assets="${asset.absolute.dir}"
534 androidjar="${project.target.android.jar}"
535 apkfolder="${out.absolute.dir}"
536 nocrunch="${build.packaging.nocrunch}"
537 resourcefilename="${resource.package.file.name}"
538 resourcefilter="${aapt.resource.filter}"
539 libraryResFolderPathRefid="project.library.res.folder.path"
540 libraryPackagesRefid="project.library.packages"
541 libraryRFileRefid="project.library.bin.r.file.path"
542 previousBuildType=""
543 buildType="${build.target}"
544 ignoreAssets="${aapt.ignore.assets}">
545 <res path="${out.res.absolute.dir}" />
546 <res path="${resource.absolute.dir}" />
547 <!-- <nocompress /> forces no compression on any files in assets or res/raw -->
548 <!-- <nocompress extension="xml" /> forces no compression on specifi c file extensions in assets and res/raw -->
549 </aapt>
550 </target>
551
552 <!-- Packages the application. -->
553 <target name="-package" depends="-dex, -package-resources">
554 <apkbuilder
555 outfolder="${out.absolute.dir}"
556 resourcefile="${resource.package.file.name}"
557 apkfilepath="${out.packaged.file}"
558 debugpackaging="${build.is.packaging.debug}"
559 debugsigning="${build.is.signing.debug}"
560 verbose="${verbose}"
561 hascode="${manifest.hasCode}"
562 previousBuildType="/"
563 buildType="${build.is.packaging.debug}/${build.is.signing.debug} ">
564 <dex path="${intermediate.dex.file}"/>
565 <sourcefolder path="${source.absolute.dir}"/>
566 <nativefolder path="${native.libs.absolute.dir}" />
567 </apkbuilder>
568 </target>
569
570 <!-- Signs and zipaligns the apk. -->
571 <target name="-do-sign" depends="-package">
572 <sequential>
573 <echo level="info">Signing final apk...</echo>
574 <signapk
575 input="${out.packaged.file}"
576 output="${out.unaligned.file}"
577 keystore="${key.store}"
578 storepass="${key.store.password}"
579 alias="${key.alias}"
580 keypass="${key.alias.password}"/>
581
582 <zipalign
583 executable="${zipalign}"
584 input="${out.unaligned.file}"
585 output="${out.final.file}"
586 verbose="${verbose}" />
587 <echo level="info">Release Package: ${out.final.file}</echo>
588 </sequential>
589 </target>
590
591 <!-- Builds debug output package -->
592 <target name="debug"
593 depends="-set-debug-mode, -do-sign"
594 description="Builds the application and signs it with a debug key.">
595 </target>
596
597 <!-- This runs -package-release first and then runs
598 only if release-sign is true (set in -release-check,
599 called by -release-no-sign)-->
600 <target name="release"
601 depends="-set-release-mode, -do-sign"
602 description="Builds the application in release mode.">
603 </target>
604
605 </project>
OLDNEW
« no previous file with comments | « android_webview/android_webview_tests.gypi ('k') | build/android/ant/apk-codegen.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698