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

Side by Side Diff: build/config/android/internal_rules.gni

Issue 1180693002: Update from https://crrev.com/333737 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rebased Created 5 years, 6 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 | « build/config/android/config.gni ('k') | build/config/android/rules.gni » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/android/config.gni") 5 import("//build/config/android/config.gni")
6 6
7 assert(is_android) 7 assert(is_android)
8 8
9 rebased_android_sdk = rebase_path(android_sdk, root_build_dir) 9 rebased_android_sdk = rebase_path(android_sdk, root_build_dir)
10 rebased_android_sdk_root = rebase_path(android_sdk_root, root_build_dir) 10 rebased_android_sdk_root = rebase_path(android_sdk_root, root_build_dir)
11 rebased_android_sdk_build_tools = 11 rebased_android_sdk_build_tools =
12 rebase_path(android_sdk_build_tools, root_build_dir) 12 rebase_path(android_sdk_build_tools, root_build_dir)
13 13
14 android_sdk_jar = "$android_sdk/android.jar" 14 android_sdk_jar = "$android_sdk/android.jar"
15 rebased_android_sdk_jar = rebase_path(android_sdk_jar, root_build_dir) 15 rebased_android_sdk_jar = rebase_path(android_sdk_jar, root_build_dir)
16 android_aapt_path = "$rebased_android_sdk_build_tools/aapt"
16 17
17 template("android_lint") { 18 template("android_lint") {
18 set_sources_assignment_filter([]) 19 set_sources_assignment_filter([])
19 if (defined(invoker.testonly)) { 20 if (defined(invoker.testonly)) {
20 testonly = invoker.testonly 21 testonly = invoker.testonly
21 } 22 }
22 23
23 jar_path = invoker.jar_path 24 jar_path = invoker.jar_path
24 android_manifest = invoker.android_manifest 25 android_manifest = invoker.android_manifest
25 java_files = invoker.java_files 26 java_files = invoker.java_files
(...skipping 26 matching lines...) Expand all
52 "--product-dir=.", 53 "--product-dir=.",
53 "--jar-path", 54 "--jar-path",
54 rebase_path(jar_path, root_build_dir), 55 rebase_path(jar_path, root_build_dir),
55 "--processed-config-path", 56 "--processed-config-path",
56 rebase_path(config_path, root_build_dir), 57 rebase_path(config_path, root_build_dir),
57 "--result-path", 58 "--result-path",
58 rebase_path(result_path, root_build_dir), 59 rebase_path(result_path, root_build_dir),
59 "--java-files=$rebased_java_files", 60 "--java-files=$rebased_java_files",
60 "--enable", 61 "--enable",
61 ] 62 ]
63
64 if (defined(invoker.deps)) {
65 deps = invoker.deps
66 }
67 if (defined(invoker.public_deps)) {
68 public_deps = invoker.public_deps
69 }
70 if (defined(invoker.data_deps)) {
71 data_deps = invoker.data_deps
72 }
62 } 73 }
63 } 74 }
64 75
65 template("findbugs") { 76 template("findbugs") {
66 jar_path = invoker.jar_path 77 jar_path = invoker.jar_path
67 78
68 build_config = invoker.build_config 79 build_config = invoker.build_config
69 80
70 action(target_name) { 81 action(target_name) {
71 script = "//build/android/findbugs_diff.py" 82 script = "//build/android/findbugs_diff.py"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 rebase_path(depfile, root_build_dir), 187 rebase_path(depfile, root_build_dir),
177 "--inputs=$rebase_inputs", 188 "--inputs=$rebase_inputs",
178 "--output=$rebase_output", 189 "--output=$rebase_output",
179 ] 190 ]
180 if (defined(invoker.base_dir)) { 191 if (defined(invoker.base_dir)) {
181 args += [ 192 args += [
182 "--base-dir", 193 "--base-dir",
183 rebase_path(invoker.base_dir, root_build_dir), 194 rebase_path(invoker.base_dir, root_build_dir),
184 ] 195 ]
185 } 196 }
197
198 if (defined(invoker.deps)) {
199 deps = invoker.deps
200 }
201 if (defined(invoker.public_deps)) {
202 public_deps = invoker.public_deps
203 }
204 if (defined(invoker.data_deps)) {
205 data_deps = invoker.data_deps
206 }
207
208 if (defined(invoker.visibility)) {
209 visibility = invoker.visibility
210 }
186 } 211 }
187 } 212 }
188 213
189 # Write the target's .build_config file. This is a json file that contains a 214 # Write the target's .build_config file. This is a json file that contains a
190 # dictionary of information about how to build this target (things that 215 # dictionary of information about how to build this target (things that
191 # require knowledge about this target's dependencies and cannot be calculated 216 # require knowledge about this target's dependencies and cannot be calculated
192 # at gn-time). There is a special syntax to add a value in that dictionary to 217 # at gn-time). There is a special syntax to add a value in that dictionary to
193 # an action/action_foreachs args: 218 # an action/action_foreachs args:
194 # --python-arg=@FileArg($rebased_build_config_path:key0:key1) 219 # --python-arg=@FileArg($rebased_build_config_path:key0:key1)
195 # At runtime, such an arg will be replaced by the value in the build_config. 220 # At runtime, such an arg will be replaced by the value in the build_config.
196 # See build/android/gyp/write_build_config.py and 221 # See build/android/gyp/write_build_config.py and
197 # build/android/gyp/util/build_utils.py:ExpandFileArgs 222 # build/android/gyp/util/build_utils.py:ExpandFileArgs
198 template("write_build_config") { 223 template("write_build_config") {
199 set_sources_assignment_filter([]) 224 set_sources_assignment_filter([])
200 if (defined(invoker.testonly)) { 225 if (defined(invoker.testonly)) {
201 testonly = invoker.testonly 226 testonly = invoker.testonly
202 } 227 }
203 228
204 assert(defined(invoker.type)) 229 assert(defined(invoker.type))
205 assert(defined(invoker.build_config)) 230 assert(defined(invoker.build_config))
206 231
207 type = invoker.type 232 type = invoker.type
208 build_config = invoker.build_config 233 build_config = invoker.build_config
209 234
210 assert(type == "android_apk" || type == "java_library" || 235 assert(type == "android_apk" || type == "java_library" ||
211 type == "android_resources" || type == "deps_dex") 236 type == "android_resources" || type == "deps_dex")
212 237
213 action(target_name) { 238 action(target_name) {
239 if (defined(invoker.visibility)) {
240 visibility = invoker.visibility
241 }
242
214 script = "//build/android/gyp/write_build_config.py" 243 script = "//build/android/gyp/write_build_config.py"
215 depfile = "$target_gen_dir/$target_name.d" 244 depfile = "$target_gen_dir/$target_name.d"
216 inputs = [] 245 inputs = []
217 246
218 deps = [] 247 deps = []
219 if (defined(invoker.deps)) { 248 if (defined(invoker.deps)) {
220 deps += invoker.deps 249 deps += invoker.deps
221 } 250 }
222 251
223 possible_deps_configs = [] 252 possible_deps_configs = []
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 _output_jar_path = invoker.output_jar_path 391 _output_jar_path = invoker.output_jar_path
363 _jar_toc_path = _output_jar_path + ".TOC" 392 _jar_toc_path = _output_jar_path + ".TOC"
364 393
365 assert(invoker.build_config != "") 394 assert(invoker.build_config != "")
366 395
367 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { 396 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) {
368 _proguard_jar_path = "$android_sdk_root/tools/proguard/lib/proguard.jar" 397 _proguard_jar_path = "$android_sdk_root/tools/proguard/lib/proguard.jar"
369 _proguard_config_path = invoker.proguard_config 398 _proguard_config_path = invoker.proguard_config
370 _build_config = invoker.build_config 399 _build_config = invoker.build_config
371 _rebased_build_config = rebase_path(_build_config, root_build_dir) 400 _rebased_build_config = rebase_path(_build_config, root_build_dir)
372 action("${target_name}__proguard_process") { 401 _output_jar_target = "${target_name}__proguard_process"
402 action(_output_jar_target) {
373 script = "//build/android/gyp/proguard.py" 403 script = "//build/android/gyp/proguard.py"
374 inputs = [ 404 inputs = [
375 android_sdk_jar, 405 android_sdk_jar,
376 _proguard_jar_path, 406 _proguard_jar_path,
377 _build_config, 407 _build_config,
378 _input_jar_path, 408 _input_jar_path,
379 _proguard_config_path, 409 _proguard_config_path,
380 ] 410 ]
381 depfile = "${target_gen_dir}/${target_name}.d" 411 depfile = "${target_gen_dir}/${target_name}.d"
382 outputs = [ 412 outputs = [
383 depfile, 413 depfile,
384 _output_jar_path, 414 _output_jar_path,
385 ] 415 ]
386 args = [ 416 args = [
387 "--depfile", 417 "--depfile",
388 rebase_path(depfile, root_build_dir), 418 rebase_path(depfile, root_build_dir),
389 "--proguard-path", 419 "--proguard-path",
390 rebase_path(_proguard_jar_path, root_build_dir), 420 rebase_path(_proguard_jar_path, root_build_dir),
391 "--input-path", 421 "--input-path",
392 rebase_path(_input_jar_path, root_build_dir), 422 rebase_path(_input_jar_path, root_build_dir),
393 "--output-path", 423 "--output-path",
394 rebase_path(_output_jar_path, root_build_dir), 424 rebase_path(_output_jar_path, root_build_dir),
395 "--proguard-config", 425 "--proguard-config",
396 rebase_path(_proguard_config_path, root_build_dir), 426 rebase_path(_proguard_config_path, root_build_dir),
397 "--classpath", 427 "--classpath",
398 rebased_android_sdk_jar, 428 rebased_android_sdk_jar,
399 "--classpath=@FileArg($_rebased_build_config:javac:classpath)", 429 "--classpath=@FileArg($_rebased_build_config:javac:classpath)",
400 ] 430 ]
431
432 if (defined(invoker.deps)) {
433 deps = invoker.deps
434 }
435 if (defined(invoker.public_deps)) {
436 public_deps = invoker.public_deps
437 }
438 if (defined(invoker.data_deps)) {
439 data_deps = invoker.data_deps
440 }
401 } 441 }
402 } else { 442 } else {
403 copy("${target_name}__copy_jar") { 443 _output_jar_target = "${target_name}__copy_jar"
444 copy(_output_jar_target) {
404 sources = [ 445 sources = [
405 _input_jar_path, 446 _input_jar_path,
406 ] 447 ]
407 outputs = [ 448 outputs = [
408 _output_jar_path, 449 _output_jar_path,
409 ] 450 ]
451
452 if (defined(invoker.deps)) {
453 deps = invoker.deps
454 }
455 if (defined(invoker.public_deps)) {
456 public_deps = invoker.public_deps
457 }
458 if (defined(invoker.data_deps)) {
459 data_deps = invoker.data_deps
460 }
410 } 461 }
411 } 462 }
412 463
413 action("${target_name}__jar_toc") { 464 action("${target_name}__jar_toc") {
414 script = "//build/android/gyp/jar_toc.py" 465 script = "//build/android/gyp/jar_toc.py"
415 depfile = "$target_gen_dir/$target_name.d" 466 depfile = "$target_gen_dir/$target_name.d"
416 outputs = [ 467 outputs = [
417 depfile, 468 depfile,
418 _jar_toc_path, 469 _jar_toc_path,
419 _jar_toc_path + ".md5.stamp", 470 _jar_toc_path + ".md5.stamp",
420 ] 471 ]
421 inputs = [ 472 inputs = [
422 _output_jar_path, 473 _output_jar_path,
423 ] 474 ]
424 args = [ 475 args = [
425 "--depfile", 476 "--depfile",
426 rebase_path(depfile, root_build_dir), 477 rebase_path(depfile, root_build_dir),
427 "--jar-path", 478 "--jar-path",
428 rebase_path(_output_jar_path, root_build_dir), 479 rebase_path(_output_jar_path, root_build_dir),
429 "--toc-path", 480 "--toc-path",
430 rebase_path(_jar_toc_path, root_build_dir), 481 rebase_path(_jar_toc_path, root_build_dir),
431 ] 482 ]
483 public_deps = [
484 ":$_output_jar_target",
485 ]
432 } 486 }
433 487
434 group(target_name) { 488 group(target_name) {
435 deps = [ 489 if (defined(invoker.visibility)) {
490 visibility = invoker.visibility
491 }
492 public_deps = [
436 ":${target_name}__jar_toc", 493 ":${target_name}__jar_toc",
494 ":$_output_jar_target",
437 ] 495 ]
438 } 496 }
439 } 497 }
440 498
499 template("finalize_apk") {
500 action(target_name) {
501 script = "//build/android/gyp/finalize_apk.py"
502 depfile = "$target_gen_dir/$target_name.d"
503
504 if (defined(invoker.testonly)) {
505 testonly = invoker.testonly
506 }
507
508 sources = [
509 invoker.input_apk_path,
510 ]
511 inputs = [
512 invoker.keystore_path,
513 ]
514 outputs = [
515 depfile,
516 invoker.output_apk_path,
517 ]
518
519 args = [
520 "--depfile",
521 rebase_path(depfile, root_build_dir),
522 "--zipalign-path",
523 rebase_path(zipalign_path, root_build_dir),
524 "--unsigned-apk-path",
525 rebase_path(invoker.input_apk_path, root_build_dir),
526 "--final-apk-path",
527 rebase_path(invoker.output_apk_path, root_build_dir),
528 "--key-path",
529 rebase_path(invoker.keystore_path, root_build_dir),
530 "--key-name",
531 invoker.keystore_name,
532 "--key-passwd",
533 invoker.keystore_password,
534 ]
535 if (defined(invoker.rezip_apk) && invoker.rezip_apk) {
536 _rezip_jar_path = "$root_build_dir/lib.java/rezip_apk.jar"
537 inputs += [ _rezip_jar_path ]
538 args += [
539 "--load-library-from-zip=1",
540 "--rezip-apk-jar-path",
541 rebase_path(_rezip_jar_path, root_build_dir),
542 ]
543 }
544
545 if (defined(invoker.deps)) {
546 deps = invoker.deps
547 }
548 if (defined(invoker.public_deps)) {
549 public_deps = invoker.public_deps
550 }
551 if (defined(invoker.data_deps)) {
552 data_deps = invoker.data_deps
553 }
554 }
555 }
556
441 # Packages resources, assets, dex, and native libraries into an apk. Signs and 557 # Packages resources, assets, dex, and native libraries into an apk. Signs and
442 # zipaligns the apk. 558 # zipaligns the apk.
443 template("create_apk") { 559 template("create_apk") {
444 set_sources_assignment_filter([]) 560 set_sources_assignment_filter([])
445 if (defined(invoker.testonly)) { 561 if (defined(invoker.testonly)) {
446 testonly = invoker.testonly 562 testonly = invoker.testonly
447 } 563 }
448 564
449 _android_manifest = invoker.android_manifest 565 _android_manifest = invoker.android_manifest
450 _base_path = invoker.base_path 566 _base_path = invoker.base_path
451 _final_apk_path = invoker.apk_path 567 _final_apk_path = invoker.apk_path
452 _resources_zip = invoker.resources_zip 568
453 _dex_path = invoker.dex_path 569 if (defined(invoker.resources_zip)) {
454 _keystore_path = invoker.keystore_path 570 _resources_zip = invoker.resources_zip
455 _keystore_name = invoker.keystore_name 571 }
456 _keystore_password = invoker.keystore_password 572 if (defined(invoker.dex_path)) {
573 _dex_path = invoker.dex_path
574 }
457 _load_library_from_apk = invoker.load_library_from_apk 575 _load_library_from_apk = invoker.load_library_from_apk
458 576
459 _deps = [] 577 _package_deps = []
460 if (defined(invoker.deps)) { 578 if (defined(invoker.deps)) {
461 _deps = invoker.deps 579 _package_deps = invoker.deps
462 } 580 }
463 581
464 _native_libs_dir = "//build/android/empty/res" 582 _native_libs_dir = "//build/android/empty/res"
465 if (defined(invoker.native_libs_dir)) { 583 if (defined(invoker.native_libs_dir)) {
466 _native_libs_dir = invoker.native_libs_dir 584 _native_libs_dir = invoker.native_libs_dir
467 } 585 }
468 586
469 _asset_location = "//build/android/empty/res"
470 if (defined(invoker.asset_location)) { 587 if (defined(invoker.asset_location)) {
471 _asset_location = invoker.asset_location 588 _asset_location = invoker.asset_location
472 } 589 }
473 590
474 _version_code = invoker.version_code 591 _version_code = invoker.version_code
475 _version_name = invoker.version_name 592 _version_name = invoker.version_name
476 593
477 _base_apk_path = _base_path + ".apk_intermediates" 594 _base_apk_path = _base_path + ".apk_intermediates"
478 595
479 _resource_packaged_apk_path = _base_apk_path + ".ap_" 596 _resource_packaged_apk_path = _base_apk_path + ".ap_"
480 _packaged_apk_path = _base_apk_path + ".unfinished.apk" 597 _packaged_apk_path = _base_apk_path + ".unfinished.apk"
481 _shared_resources = 598 _shared_resources =
482 defined(invoker.shared_resources) && invoker.shared_resources 599 defined(invoker.shared_resources) && invoker.shared_resources
483 600
484 _configuration_name = "Release" 601 _configuration_name = "Release"
485 if (is_debug) { 602 if (is_debug) {
486 _configuration_name = "Debug" 603 _configuration_name = "Debug"
487 } 604 }
488 605
489 action("${target_name}__package_resources") { 606 _create_density_splits =
490 deps = _deps 607 defined(invoker.create_density_splits) && invoker.create_density_splits
608 if (_create_density_splits) {
609 _split_densities = [
610 "hdpi",
611 "xhdpi",
612 "xxhdpi",
613 "tvdpi",
614 ]
615 }
616
617 _package_resources_target_name = "${target_name}__package_resources"
618 action(_package_resources_target_name) {
619 deps = _package_deps
491 620
492 script = "//build/android/gyp/package_resources.py" 621 script = "//build/android/gyp/package_resources.py"
493 depfile = "${target_gen_dir}/${target_name}.d" 622 depfile = "${target_gen_dir}/${target_name}.d"
494 inputs = [ 623 inputs = [
495 _android_manifest, 624 _android_manifest,
496 _resources_zip,
497 ] 625 ]
626 if (defined(_resources_zip)) {
627 inputs += [ _resources_zip ]
628 }
498 outputs = [ 629 outputs = [
499 depfile, 630 depfile,
500 _resource_packaged_apk_path, 631 _resource_packaged_apk_path,
501 ] 632 ]
502 633
503 _rebased_resources_zips = [ rebase_path(_resources_zip, root_build_dir) ]
504 args = [ 634 args = [
505 "--depfile", 635 "--depfile",
506 rebase_path(depfile, root_build_dir), 636 rebase_path(depfile, root_build_dir),
507 "--android-sdk", 637 "--android-sdk",
508 rebased_android_sdk, 638 rebased_android_sdk,
509 "--android-sdk-tools", 639 "--aapt-path",
510 rebased_android_sdk_build_tools, 640 android_aapt_path,
511 "--configuration-name=$_configuration_name", 641 "--configuration-name=$_configuration_name",
512 "--android-manifest", 642 "--android-manifest",
513 rebase_path(_android_manifest, root_build_dir), 643 rebase_path(_android_manifest, root_build_dir),
514 "--version-code", 644 "--version-code",
515 _version_code, 645 _version_code,
516 "--version-name", 646 "--version-name",
517 _version_name, 647 _version_name,
518 "--asset-dir",
519 rebase_path(_asset_location, root_build_dir),
520 "--resource-zips=$_rebased_resources_zips",
521 "--apk-path", 648 "--apk-path",
522 rebase_path(_resource_packaged_apk_path, root_build_dir), 649 rebase_path(_resource_packaged_apk_path, root_build_dir),
523 ] 650 ]
524 651
652 if (defined(_asset_location)) {
653 args += [
654 "--asset-dir",
655 rebase_path(_asset_location, root_build_dir),
656 ]
657 }
658 if (defined(_resources_zip)) {
659 args += [
660 "--resource-zips",
661 rebase_path(_resources_zip, root_build_dir),
662 ]
663 }
525 if (_shared_resources) { 664 if (_shared_resources) {
526 args += [ "--shared-resources" ] 665 args += [ "--shared-resources" ]
527 } 666 }
667 if (_create_density_splits) {
668 args += [ "--create-density-splits" ]
669 foreach(_density, _split_densities) {
670 outputs += [ "${_resource_packaged_apk_path}-${_density}" ]
671 }
672 }
528 } 673 }
529 674
530 action("${target_name}__package") { 675 package_target = "${target_name}__package"
676 action(package_target) {
531 script = "//build/android/gyp/ant.py" 677 script = "//build/android/gyp/ant.py"
532 _ant_script = "//build/android/ant/apk-package.xml" 678 _ant_script = "//build/android/ant/apk-package.xml"
533 679
680 deps = [
681 ":${_package_resources_target_name}",
682 ]
683 if (defined(invoker.deps)) {
684 deps += invoker.deps
685 }
534 depfile = "$target_gen_dir/$target_name.d" 686 depfile = "$target_gen_dir/$target_name.d"
535 687
536 inputs = [ 688 inputs = [
537 _dex_path,
538 _resource_packaged_apk_path, 689 _resource_packaged_apk_path,
539 _ant_script, 690 _ant_script,
540 ] 691 ]
692 if (defined(_dex_path)) {
693 inputs += [ _dex_path ]
694 }
541 695
542 outputs = [ 696 outputs = [
543 depfile, 697 depfile,
544 _packaged_apk_path, 698 _packaged_apk_path,
545 ] 699 ]
546 700
547 _rebased_emma_jar = "" 701 _rebased_emma_jar = ""
548 _rebased_resource_packaged_apk_path = 702 _rebased_resource_packaged_apk_path =
549 rebase_path(_resource_packaged_apk_path, root_build_dir) 703 rebase_path(_resource_packaged_apk_path, root_build_dir)
550 _rebased_packaged_apk_path = rebase_path(_packaged_apk_path, root_build_dir) 704 _rebased_packaged_apk_path = rebase_path(_packaged_apk_path, root_build_dir)
551 _rebased_native_libs_dir = rebase_path(_native_libs_dir, root_build_dir) 705 _rebased_native_libs_dir = rebase_path(_native_libs_dir, root_build_dir)
552 _rebased_dex_path = rebase_path(_dex_path, root_build_dir)
553 args = [ 706 args = [
554 "--depfile", 707 "--depfile",
555 rebase_path(depfile, root_build_dir), 708 rebase_path(depfile, root_build_dir),
556 "--", 709 "--",
557 "-quiet", 710 "-quiet",
558 "-DANDROID_SDK_ROOT=$rebased_android_sdk_root", 711 "-DANDROID_SDK_ROOT=$rebased_android_sdk_root",
559 "-DANDROID_SDK_TOOLS=$rebased_android_sdk_build_tools", 712 "-DANDROID_SDK_TOOLS=$rebased_android_sdk_build_tools",
560 "-DRESOURCE_PACKAGED_APK_NAME=$_rebased_resource_packaged_apk_path", 713 "-DRESOURCE_PACKAGED_APK_NAME=$_rebased_resource_packaged_apk_path",
561 "-DCONFIGURATION_NAME=$_configuration_name", 714 "-DCONFIGURATION_NAME=$_configuration_name",
562 "-DNATIVE_LIBS_DIR=$_rebased_native_libs_dir", 715 "-DNATIVE_LIBS_DIR=$_rebased_native_libs_dir",
563 "-DOUT_DIR=", 716 "-DOUT_DIR=",
564 "-DUNSIGNED_APK_PATH=$_rebased_packaged_apk_path", 717 "-DUNSIGNED_APK_PATH=$_rebased_packaged_apk_path",
565 "-DEMMA_INSTRUMENT=0", 718 "-DEMMA_INSTRUMENT=0",
566 "-DEMMA_DEVICE_JAR=$_rebased_emma_jar", 719 "-DEMMA_DEVICE_JAR=$_rebased_emma_jar",
567 "-DDEX_FILE_PATH=$_rebased_dex_path",
568 "-Dbasedir=.", 720 "-Dbasedir=.",
569 "-buildfile", 721 "-buildfile",
570 rebase_path(_ant_script, root_build_dir), 722 rebase_path(_ant_script, root_build_dir),
571 ] 723 ]
724 if (defined(_dex_path)) {
725 _rebased_dex_path = rebase_path(_dex_path, root_build_dir)
726 args += [
727 "-DDEX_FILE_PATH=$_rebased_dex_path",
728 "-DHAS_CODE=true",
729 ]
730 } else {
731 args += [ "-DHAS_CODE=false" ]
732 }
572 } 733 }
573 734
574 action("${target_name}__finalize") { 735 _finalize_apk_rule_name = "${target_name}__finalize"
575 script = "//build/android/gyp/finalize_apk.py" 736 finalize_apk(_finalize_apk_rule_name) {
576 depfile = "$target_gen_dir/$target_name.d" 737 input_apk_path = _packaged_apk_path
738 output_apk_path = _final_apk_path
739 keystore_path = invoker.keystore_path
740 keystore_name = invoker.keystore_name
741 keystore_password = invoker.keystore_password
742 rezip_apk = _load_library_from_apk
577 743
578 sources = [ 744 public_deps = [
579 _packaged_apk_path, 745 # Generator of the _packaged_apk_path this target takes as input.
746 ":$package_target",
580 ] 747 ]
581 inputs = [ 748 }
582 _keystore_path,
583 ]
584 outputs = [
585 depfile,
586 _final_apk_path,
587 ]
588 749
589 args = [ 750 _final_deps = [ ":${_finalize_apk_rule_name}" ]
590 "--depfile", 751
591 rebase_path(depfile, root_build_dir), 752 if (_create_density_splits) {
592 "--zipalign-path", 753 foreach(_density, _split_densities) {
593 rebase_path(zipalign_path, root_build_dir), 754 _finalize_split_rule_name = "${target_name}__finalize_${_density}_split"
594 "--unsigned-apk-path", 755 finalize_apk(_finalize_split_rule_name) {
595 rebase_path(_packaged_apk_path, root_build_dir), 756 input_apk_path = "${_resource_packaged_apk_path}-${_density}"
596 "--final-apk-path", 757 _output_paths = process_file_template(
597 rebase_path(_final_apk_path, root_build_dir), 758 [ _final_apk_path ],
598 "--key-path", 759 "{{source_dir}}/{{source_name_part}}-${_density}.apk")
599 rebase_path(_keystore_path, root_build_dir), 760 output_apk_path = _output_paths[0]
600 "--key-name", 761 keystore_path = invoker.keystore_path
601 _keystore_name, 762 keystore_name = invoker.keystore_name
602 "--key-passwd", 763 keystore_password = invoker.keystore_password
603 _keystore_password, 764 }
604 ] 765 _final_deps += [ ":${_finalize_split_rule_name}" ]
605 if (_load_library_from_apk) {
606 _rezip_jar_path = "$root_build_dir/lib.java/rezip_apk.jar"
607 inputs += [ _rezip_jar_path ]
608 args += [
609 "--load-library-from-zip-file=1",
610 "--rezip-apk-jar-path",
611 rebase_path(_rezip_jar_path, root_build_dir),
612 ]
613 } 766 }
614 } 767 }
615 768
616 group(target_name) { 769 group(target_name) {
617 deps = [ 770 public_deps = _final_deps
618 ":${target_name}__finalize",
619 ]
620 } 771 }
621 } 772 }
622 773
623 template("java_prebuilt_impl") { 774 template("java_prebuilt_impl") {
624 set_sources_assignment_filter([]) 775 set_sources_assignment_filter([])
625 if (defined(invoker.testonly)) { 776 if (defined(invoker.testonly)) {
626 testonly = invoker.testonly 777 testonly = invoker.testonly
627 } 778 }
628 _supports_android = 779 _supports_android =
629 defined(invoker.supports_android) && invoker.supports_android 780 defined(invoker.supports_android) && invoker.supports_android
630 781
631 assert(defined(invoker.jar_path)) 782 assert(defined(invoker.jar_path))
632 _base_path = "${target_gen_dir}/$target_name" 783 _base_path = "${target_gen_dir}/$target_name"
633 _jar_path = _base_path + ".jar" 784 _jar_path = _base_path + ".jar"
634 _build_config = _base_path + ".build_config" 785 _build_config = _base_path + ".build_config"
635 786
636 if (_supports_android) { 787 if (_supports_android) {
637 _dex_path = _base_path + ".dex.jar" 788 _dex_path = _base_path + ".dex.jar"
638 } 789 }
639 790
640 _final_deps = []
641 _template_name = target_name 791 _template_name = target_name
642 792
643 _final_deps += [ ":${_template_name}__build_config" ] 793 build_config_target_name = "${_template_name}__build_config"
644 write_build_config("${_template_name}__build_config") { 794 process_jar_target_name = "${_template_name}__process_jar"
795 if (_supports_android) {
796 dex_target_name = "${_template_name}__dex"
797 }
798
799 write_build_config(build_config_target_name) {
645 type = "java_library" 800 type = "java_library"
646 supports_android = _supports_android 801 supports_android = _supports_android
647 requires_android = 802 requires_android =
648 defined(invoker.requires_android) && invoker.requires_android 803 defined(invoker.requires_android) && invoker.requires_android
649 804
650 deps = [] 805 deps = []
651 if (defined(invoker.deps)) { 806 if (defined(invoker.deps)) {
652 deps += invoker.deps 807 deps += invoker.deps
653 } 808 }
654 build_config = _build_config 809 build_config = _build_config
655 jar_path = _jar_path 810 jar_path = _jar_path
656 if (_supports_android) { 811 if (_supports_android) {
657 dex_path = _dex_path 812 dex_path = _dex_path
658 } 813 }
659 } 814 }
660 815
661 _final_deps += [ ":${_template_name}__process_jar" ] 816 process_java_prebuilt(process_jar_target_name) {
662 process_java_prebuilt("${_template_name}__process_jar") { 817 visibility = [ ":$_template_name" ]
818 if (_supports_android) {
819 visibility += [ ":$dex_target_name" ]
820 }
821
663 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { 822 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) {
664 proguard_preprocess = true 823 proguard_preprocess = true
665 proguard_config = invoker.proguard_config 824 proguard_config = invoker.proguard_config
666 } 825 }
667 826
668 build_config = _build_config 827 build_config = _build_config
669 input_jar_path = invoker.jar_path 828 input_jar_path = invoker.jar_path
670 output_jar_path = _jar_path 829 output_jar_path = _jar_path
830
831 deps = [
832 ":$build_config_target_name",
833 ]
671 } 834 }
672 835
673 if (_supports_android) { 836 if (_supports_android) {
674 _final_deps += [ ":${_template_name}__dex" ] 837 dex(dex_target_name) {
675 dex("${_template_name}__dex") {
676 sources = [ 838 sources = [
677 _jar_path, 839 _jar_path,
678 ] 840 ]
679 output = _dex_path 841 output = _dex_path
842 deps = [
843 ":$process_jar_target_name",
844 ]
680 } 845 }
681 } 846 }
682 847
683 group(target_name) { 848 group(target_name) {
684 deps = _final_deps 849 deps = [
850 ":$process_jar_target_name",
851 ]
852 if (_supports_android) {
853 deps += [ ":$dex_target_name" ]
854 }
685 } 855 }
686 } 856 }
687 857
688 # Compiles and jars a set of java files. 858 # Compiles and jars a set of java files.
689 # 859 #
690 # Outputs: 860 # Outputs:
691 # $jar_path.jar 861 # $jar_path.jar
692 # $jar_path.jar.TOC 862 # $jar_path.jar.TOC
693 # 863 #
694 # Variables 864 # Variables
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 assert(_srcjar_deps == [] || true) 919 assert(_srcjar_deps == [] || true)
750 920
751 _system_jars = [] 921 _system_jars = []
752 if (defined(invoker.android) && invoker.android) { 922 if (defined(invoker.android) && invoker.android) {
753 _system_jars += [ android_sdk_jar ] 923 _system_jars += [ android_sdk_jar ]
754 } 924 }
755 925
756 _rebased_build_config = rebase_path(_build_config, root_build_dir) 926 _rebased_build_config = rebase_path(_build_config, root_build_dir)
757 _rebased_jar_path = rebase_path(_intermediate_jar_path, root_build_dir) 927 _rebased_jar_path = rebase_path(_intermediate_jar_path, root_build_dir)
758 928
759 _template_name = target_name 929 javac_target_name = "${target_name}__javac"
760 _final_deps = [ ":${_template_name}__javac" ] 930 finish_target_name = "${target_name}__finish"
761 action("${_template_name}__javac") { 931 final_target_name = target_name
932
933 action(javac_target_name) {
762 script = "//build/android/gyp/javac.py" 934 script = "//build/android/gyp/javac.py"
763 depfile = "$target_gen_dir/$target_name.d" 935 depfile = "$target_gen_dir/$target_name.d"
764 deps = [] 936 deps = _srcjar_deps
937 if (defined(invoker.deps)) {
938 deps += invoker.deps
939 }
940
765 outputs = [ 941 outputs = [
766 depfile, 942 depfile,
767 _intermediate_jar_path, 943 _intermediate_jar_path,
768 _intermediate_jar_path + ".md5.stamp", 944 _intermediate_jar_path + ".md5.stamp",
769 ] 945 ]
770 sources = _java_files + _java_srcjars 946 sources = _java_files + _java_srcjars
771 inputs = _system_jars + [ _build_config ] 947 inputs = _system_jars + [ _build_config ]
772 948
773 _rebased_system_jars = rebase_path(_system_jars, root_build_dir) 949 _rebased_system_jars = rebase_path(_system_jars, root_build_dir)
774 _rebased_java_srcjars = rebase_path(_java_srcjars, root_build_dir) 950 _rebased_java_srcjars = rebase_path(_java_srcjars, root_build_dir)
(...skipping 10 matching lines...) Expand all
785 foreach(e, _manifest_entries) { 961 foreach(e, _manifest_entries) {
786 args += [ "--manifest-entry=" + e ] 962 args += [ "--manifest-entry=" + e ]
787 } 963 }
788 if (_chromium_code) { 964 if (_chromium_code) {
789 args += [ "--chromium-code=1" ] 965 args += [ "--chromium-code=1" ]
790 } 966 }
791 967
792 args += rebase_path(_java_files, root_build_dir) 968 args += rebase_path(_java_files, root_build_dir)
793 } 969 }
794 970
795 _final_deps += [ ":${_template_name}__finish" ] 971 process_java_prebuilt(finish_target_name) {
796 process_java_prebuilt("${_template_name}__finish") { 972 visibility = [ ":$final_target_name" ]
973
797 build_config = _build_config 974 build_config = _build_config
798 input_jar_path = _intermediate_jar_path 975 input_jar_path = _intermediate_jar_path
799 output_jar_path = _final_jar_path 976 output_jar_path = _final_jar_path
800 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { 977 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) {
801 proguard_preprocess = invoker.proguard_preprocess 978 proguard_preprocess = invoker.proguard_preprocess
802 proguard_config = invoker.proguard_config 979 proguard_config = invoker.proguard_config
803 } 980 }
981 deps = [
982 ":$javac_target_name",
983 ]
804 } 984 }
805 985
806 group(target_name) { 986 group(final_target_name) {
807 deps = _final_deps 987 if (defined(invoker.visibility)) {
988 visibility = invoker.visibility
989 }
990 public_deps = [
991 ":$finish_target_name",
992 ]
808 } 993 }
809 } 994 }
810 995
811 template("java_library_impl") { 996 template("java_library_impl") {
812 set_sources_assignment_filter([]) 997 set_sources_assignment_filter([])
813 if (defined(invoker.testonly)) { 998 if (defined(invoker.testonly)) {
814 testonly = invoker.testonly 999 testonly = invoker.testonly
815 } 1000 }
816 1001
817 assert( 1002 assert(
(...skipping 17 matching lines...) Expand all
835 _requires_android = 1020 _requires_android =
836 defined(invoker.requires_android) && invoker.requires_android 1021 defined(invoker.requires_android) && invoker.requires_android
837 1022
838 if (_supports_android) { 1023 if (_supports_android) {
839 _dex_path = _base_path + ".dex.jar" 1024 _dex_path = _base_path + ".dex.jar"
840 if (defined(invoker.dex_path)) { 1025 if (defined(invoker.dex_path)) {
841 _dex_path = invoker.dex_path 1026 _dex_path = invoker.dex_path
842 } 1027 }
843 } 1028 }
844 1029
1030 # Define build_config_deps which will be a list of targets required to
1031 # build the _build_config.
845 if (defined(invoker.override_build_config)) { 1032 if (defined(invoker.override_build_config)) {
846 _build_config = invoker.override_build_config 1033 _build_config = invoker.override_build_config
1034
1035 # When a custom build config file is specified, we need to use the deps
1036 # supplied by the invoker any time we reference the build config file.
1037 assert(defined(invoker.deps),
1038 "If you specify a build config file for " +
1039 "java_library_impl($target_name), you should " +
1040 "also specify the target that made it in the deps")
1041 build_config_deps = invoker.deps
847 } else { 1042 } else {
848 _build_config = _base_path + ".build_config" 1043 _build_config = _base_path + ".build_config"
849 _final_deps += [ ":${_template_name}__build_config" ] 1044 build_config_target_name = "${_template_name}__build_config"
850 write_build_config("${_template_name}__build_config") { 1045 build_config_deps = [ ":$build_config_target_name" ]
1046
1047 write_build_config(build_config_target_name) {
851 type = "java_library" 1048 type = "java_library"
852 supports_android = _supports_android 1049 supports_android = _supports_android
853 requires_android = _requires_android 1050 requires_android = _requires_android
854 bypass_platform_checks = defined(invoker.bypass_platform_checks) && 1051 bypass_platform_checks = defined(invoker.bypass_platform_checks) &&
855 invoker.bypass_platform_checks 1052 invoker.bypass_platform_checks
856 1053
857 deps = [] 1054 deps = []
858 if (defined(invoker.deps)) { 1055 if (defined(invoker.deps)) {
859 deps += invoker.deps 1056 deps += invoker.deps
860 } 1057 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
899 [ 1096 [
900 "--pattern", 1097 "--pattern",
901 "*.java", 1098 "*.java",
902 rebase_path(invoker.DEPRECATED_java_in_dir, root_build_dir), 1099 rebase_path(invoker.DEPRECATED_java_in_dir, root_build_dir),
903 ], 1100 ],
904 "list lines") 1101 "list lines")
905 _java_files = rebase_path(_java_files_build_rel, ".", root_build_dir) 1102 _java_files = rebase_path(_java_files_build_rel, ".", root_build_dir)
906 } 1103 }
907 assert(_java_files != [] || _srcjar_deps != [] || _srcjars != []) 1104 assert(_java_files != [] || _srcjar_deps != [] || _srcjars != [])
908 1105
909 _final_deps += [ ":${_template_name}__compile_java" ] 1106 _compile_java_target = "${_template_name}__compile_java"
910 compile_java("${_template_name}__compile_java") { 1107 _final_deps += [ ":$_compile_java_target" ]
1108 compile_java(_compile_java_target) {
911 jar_path = _jar_path 1109 jar_path = _jar_path
912 build_config = _build_config 1110 build_config = _build_config
913 java_files = _java_files 1111 java_files = _java_files
914 srcjar_deps = _srcjar_deps 1112 srcjar_deps = _srcjar_deps
915 srcjars = _srcjars 1113 srcjars = _srcjars
916 chromium_code = _chromium_code 1114 chromium_code = _chromium_code
917 android = _requires_android 1115 android = _requires_android
918 1116
919 if (defined(invoker.jar_excluded_patterns)) { 1117 if (defined(invoker.jar_excluded_patterns)) {
920 jar_excluded_patterns = invoker.jar_excluded_patterns 1118 jar_excluded_patterns = invoker.jar_excluded_patterns
921 } 1119 }
922 if (defined(invoker.proguard_preprocess)) { 1120 if (defined(invoker.proguard_preprocess)) {
923 proguard_preprocess = invoker.proguard_preprocess 1121 proguard_preprocess = invoker.proguard_preprocess
924 } 1122 }
925 if (defined(invoker.proguard_config)) { 1123 if (defined(invoker.proguard_config)) {
926 proguard_config = invoker.proguard_config 1124 proguard_config = invoker.proguard_config
927 } 1125 }
928 if (defined(invoker.dist_jar_path)) { 1126 if (defined(invoker.dist_jar_path)) {
929 dist_jar_path = invoker.dist_jar_path 1127 dist_jar_path = invoker.dist_jar_path
930 } 1128 }
931 if (defined(invoker.manifest_entries)) { 1129 if (defined(invoker.manifest_entries)) {
932 manifest_entries = invoker.manifest_entries 1130 manifest_entries = invoker.manifest_entries
933 } 1131 }
1132
1133 deps = build_config_deps
934 } 1134 }
935 1135
936 if (defined(invoker.main_class)) { 1136 if (defined(invoker.main_class)) {
937 _final_deps += [ ":${_template_name}__binary_script" ] 1137 _final_deps += [ ":${_template_name}__binary_script" ]
938 action("${_template_name}__binary_script") { 1138 action("${_template_name}__binary_script") {
939 script = "//build/android/gyp/create_java_binary_script.py" 1139 script = "//build/android/gyp/create_java_binary_script.py"
940 depfile = "$target_gen_dir/$target_name.d" 1140 depfile = "$target_gen_dir/$target_name.d"
941 java_script = "$root_build_dir/bin/$_template_name" 1141 java_script = "$root_build_dir/bin/$_template_name"
942 inputs = [ 1142 inputs = [
943 _build_config, 1143 _build_config,
944 ] 1144 ]
945 outputs = [ 1145 outputs = [
946 depfile, 1146 depfile,
947 java_script, 1147 java_script,
948 ] 1148 ]
949 _rebased_build_config = rebase_path(_build_config, root_build_dir) 1149 _rebased_build_config = rebase_path(_build_config, root_build_dir)
950 args = [ 1150 args = [
951 "--depfile", 1151 "--depfile",
952 rebase_path(depfile, root_build_dir), 1152 rebase_path(depfile, root_build_dir),
953 "--output", 1153 "--output",
954 rebase_path(java_script, root_build_dir), 1154 rebase_path(java_script, root_build_dir),
955 "--classpath=@FileArg($_rebased_build_config:java:full_classpath)", 1155 "--classpath=@FileArg($_rebased_build_config:java:full_classpath)",
956 "--jar-path", 1156 "--jar-path",
957 rebase_path(_jar_path, root_build_dir), 1157 rebase_path(_jar_path, root_build_dir),
958 "--main-class", 1158 "--main-class",
959 invoker.main_class, 1159 invoker.main_class,
960 ] 1160 ]
1161
1162 deps = build_config_deps
961 } 1163 }
962 } 1164 }
963 1165
964 if (_supports_android) { 1166 if (_supports_android) {
965 if (defined(invoker.chromium_code) && invoker.chromium_code) { 1167 if (defined(invoker.chromium_code) && invoker.chromium_code) {
966 _android_manifest = "//build/android/AndroidManifest.xml" 1168 _android_manifest = "//build/android/AndroidManifest.xml"
967 if (defined(invoker.android_manifest)) { 1169 if (defined(invoker.android_manifest)) {
968 _android_manifest = invoker.android_manifest 1170 _android_manifest = invoker.android_manifest
969 } 1171 }
970 1172
971 _final_datadeps += [ ":${_template_name}__lint" ] 1173 _final_datadeps += [ ":${_template_name}__lint" ]
972 android_lint("${_template_name}__lint") { 1174 android_lint("${_template_name}__lint") {
973 android_manifest = _android_manifest 1175 android_manifest = _android_manifest
974 jar_path = _jar_path 1176 jar_path = _jar_path
975 java_files = _java_files 1177 java_files = _java_files
1178 deps = [
1179 ":$_compile_java_target",
1180 ]
1181 if (defined(invoker.deps)) {
1182 deps += invoker.deps
1183 }
976 } 1184 }
977 1185
978 if (run_findbugs) { 1186 if (run_findbugs) {
979 _final_datadeps += [ ":${_template_name}__findbugs" ] 1187 _final_datadeps += [ ":${_template_name}__findbugs" ]
980 findbugs("${_template_name}__findbugs") { 1188 findbugs("${_template_name}__findbugs") {
981 build_config = _build_config 1189 build_config = _build_config
982 jar_path = _jar_path 1190 jar_path = _jar_path
1191 deps = build_config_deps
983 } 1192 }
984 } 1193 }
985 } 1194 }
986 1195
987 _final_deps += [ ":${_template_name}__dex" ] 1196 _final_deps += [ ":${_template_name}__dex" ]
988 dex("${_template_name}__dex") { 1197 dex("${_template_name}__dex") {
989 sources = [ 1198 sources = [
990 _jar_path, 1199 _jar_path,
991 ] 1200 ]
992 output = _dex_path 1201 output = _dex_path
1202 deps = [
1203 ":$_compile_java_target",
1204 ]
993 } 1205 }
994 } 1206 }
995 1207
996 group(target_name) { 1208 group(target_name) {
997 if (defined(invoker.visibility)) { 1209 if (defined(invoker.visibility)) {
998 visibility = invoker.visibility 1210 visibility = invoker.visibility
999 } 1211 }
1000 deps = _final_deps 1212 public_deps = _final_deps
1001 datadeps = _final_datadeps 1213 data_deps = _final_datadeps
1002 } 1214 }
1003 } 1215 }
1004 1216
1005 # Runs process_resources.py 1217 # Runs process_resources.py
1006 template("process_resources") { 1218 template("process_resources") {
1007 set_sources_assignment_filter([]) 1219 set_sources_assignment_filter([])
1008 if (defined(invoker.testonly)) { 1220 if (defined(invoker.testonly)) {
1009 testonly = invoker.testonly 1221 testonly = invoker.testonly
1010 } 1222 }
1011 1223
1012 zip_path = invoker.zip_path 1224 zip_path = invoker.zip_path
1013 srcjar_path = invoker.srcjar_path 1225 srcjar_path = invoker.srcjar_path
1014 r_text_path = invoker.r_text_path 1226 r_text_path = invoker.r_text_path
1015 build_config = invoker.build_config 1227 build_config = invoker.build_config
1016 resource_dirs = invoker.resource_dirs 1228 resource_dirs = invoker.resource_dirs
1017 android_manifest = invoker.android_manifest 1229 android_manifest = invoker.android_manifest
1018 1230
1019 non_constant_id = true 1231 non_constant_id = true
1020 if (defined(invoker.generate_constant_ids) && invoker.generate_constant_ids) { 1232 if (defined(invoker.generate_constant_ids) && invoker.generate_constant_ids) {
1021 non_constant_id = false 1233 non_constant_id = false
1022 } 1234 }
1023 1235
1024 action(target_name) { 1236 action(target_name) {
1237 if (defined(invoker.visibility)) {
1238 visibility = invoker.visibility
1239 }
1240
1025 script = "//build/android/gyp/process_resources.py" 1241 script = "//build/android/gyp/process_resources.py"
1026 1242
1027 depfile = "$target_gen_dir/$target_name.d" 1243 depfile = "$target_gen_dir/$target_name.d"
1028 outputs = [ 1244 outputs = [
1029 depfile, 1245 depfile,
1030 zip_path, 1246 zip_path,
1031 srcjar_path, 1247 srcjar_path,
1032 r_text_path, 1248 r_text_path,
1033 ] 1249 ]
1034 1250
1035 sources_build_rel = exec_script("//build/android/gyp/find.py", 1251 sources_build_rel = exec_script("//build/android/gyp/find.py",
1036 rebase_path(resource_dirs, root_build_dir), 1252 rebase_path(resource_dirs, root_build_dir),
1037 "list lines") 1253 "list lines")
1038 sources = rebase_path(sources_build_rel, ".", root_build_dir) 1254 sources = rebase_path(sources_build_rel, ".", root_build_dir)
1039 1255
1040 inputs = [ 1256 inputs = [
1041 build_config, 1257 build_config,
1042 android_manifest, 1258 android_manifest,
1043 ] 1259 ]
1044 1260
1045 rebase_resource_dirs = rebase_path(resource_dirs, root_build_dir) 1261 rebase_resource_dirs = rebase_path(resource_dirs, root_build_dir)
1046 rebase_build_config = rebase_path(build_config, root_build_dir) 1262 rebase_build_config = rebase_path(build_config, root_build_dir)
1047 args = [ 1263 args = [
1048 "--depfile", 1264 "--depfile",
1049 rebase_path(depfile, root_build_dir), 1265 rebase_path(depfile, root_build_dir),
1050 "--android-sdk", 1266 "--android-sdk",
1051 rebase_path(android_sdk, root_build_dir), 1267 rebase_path(android_sdk, root_build_dir),
1052 "--android-sdk-tools", 1268 "--aapt-path",
1053 rebase_path(android_sdk_build_tools, root_build_dir), 1269 android_aapt_path,
1054 "--android-manifest", 1270 "--android-manifest",
1055 rebase_path(android_manifest, root_build_dir), 1271 rebase_path(android_manifest, root_build_dir),
1056 "--resource-dirs=$rebase_resource_dirs", 1272 "--resource-dirs=$rebase_resource_dirs",
1057 "--srcjar-out", 1273 "--srcjar-out",
1058 rebase_path(srcjar_path, root_build_dir), 1274 rebase_path(srcjar_path, root_build_dir),
1059 "--resource-zip-out", 1275 "--resource-zip-out",
1060 rebase_path(zip_path, root_build_dir), 1276 rebase_path(zip_path, root_build_dir),
1061 "--r-text-out", 1277 "--r-text-out",
1062 rebase_path(r_text_path, root_build_dir), 1278 rebase_path(r_text_path, root_build_dir),
1063 "--dependencies-res-zips=@FileArg($rebase_build_config:resources:dependenc y_zips)", 1279 "--dependencies-res-zips=@FileArg($rebase_build_config:resources:dependenc y_zips)",
1064 "--extra-res-packages=@FileArg($rebase_build_config:resources:extra_packag e_names)", 1280 "--extra-res-packages=@FileArg($rebase_build_config:resources:extra_packag e_names)",
1065 "--extra-r-text-files=@FileArg($rebase_build_config:resources:extra_r_text _files)", 1281 "--extra-r-text-files=@FileArg($rebase_build_config:resources:extra_r_text _files)",
1066 ] 1282 ]
1067 1283
1068 if (non_constant_id) { 1284 if (non_constant_id) {
1069 args += [ "--non-constant-id" ] 1285 args += [ "--non-constant-id" ]
1070 } 1286 }
1071 1287
1072 if (defined(invoker.custom_package)) { 1288 if (defined(invoker.custom_package)) {
1073 args += [ 1289 args += [
1074 "--custom-package", 1290 "--custom-package",
1075 invoker.custom_package, 1291 invoker.custom_package,
1076 ] 1292 ]
1077 } 1293 }
1078 1294
1079 if (defined(invoker.v14_verify_only) && invoker.v14_verify_only) { 1295 if (defined(invoker.v14_skip) && invoker.v14_skip) {
1080 args += [ "--v14-verify-only" ] 1296 args += [ "--v14-skip" ]
1081 } 1297 }
1082 1298
1083 if (defined(invoker.shared_resources) && invoker.shared_resources) { 1299 if (defined(invoker.shared_resources) && invoker.shared_resources) {
1084 args += [ "--shared-resources" ] 1300 args += [ "--shared-resources" ]
1085 } 1301 }
1086 1302
1087 if (defined(invoker.include_all_resources) && 1303 if (defined(invoker.include_all_resources) &&
1088 invoker.include_all_resources) { 1304 invoker.include_all_resources) {
1089 args += [ "--include-all-resources" ] 1305 args += [ "--include-all-resources" ]
1090 } 1306 }
1091 1307
1092 if (defined(invoker.all_resources_zip_path)) { 1308 if (defined(invoker.all_resources_zip_path)) {
1093 all_resources_zip = invoker.all_resources_zip_path 1309 all_resources_zip = invoker.all_resources_zip_path
1094 outputs += [ all_resources_zip ] 1310 outputs += [ all_resources_zip ]
1095 args += [ 1311 args += [
1096 "--all-resources-zip-out", 1312 "--all-resources-zip-out",
1097 rebase_path(all_resources_zip, root_build_dir), 1313 rebase_path(all_resources_zip, root_build_dir),
1098 ] 1314 ]
1099 } 1315 }
1100 1316
1101 if (defined(invoker.args)) { 1317 if (defined(invoker.args)) {
1102 args += invoker.args 1318 args += invoker.args
1103 } 1319 }
1320 if (defined(invoker.deps)) {
1321 deps = invoker.deps
1322 }
1104 } 1323 }
1105 } 1324 }
1106 1325
1107 template("copy_ex") { 1326 template("copy_ex") {
1108 set_sources_assignment_filter([]) 1327 set_sources_assignment_filter([])
1109 if (defined(invoker.testonly)) { 1328 if (defined(invoker.testonly)) {
1110 testonly = invoker.testonly 1329 testonly = invoker.testonly
1111 } 1330 }
1112 1331
1113 action(target_name) { 1332 action(target_name) {
1333 if (defined(invoker.visibility)) {
1334 visibility = invoker.visibility
1335 }
1336
1114 script = "//build/android/gyp/copy_ex.py" 1337 script = "//build/android/gyp/copy_ex.py"
1115 1338
1116 if (defined(invoker.deps)) { 1339 if (defined(invoker.deps)) {
1117 deps = invoker.deps 1340 deps = invoker.deps
1118 } 1341 }
1119 1342
1120 sources = [] 1343 sources = []
1121 if (defined(invoker.sources)) { 1344 if (defined(invoker.sources)) {
1122 sources += invoker.sources 1345 sources += invoker.sources
1123 } 1346 }
(...skipping 24 matching lines...) Expand all
1148 if (defined(invoker.args)) { 1371 if (defined(invoker.args)) {
1149 args += invoker.args 1372 args += invoker.args
1150 } 1373 }
1151 } 1374 }
1152 } 1375 }
1153 1376
1154 # Produces a single .dex.jar out of a set of Java dependencies. 1377 # Produces a single .dex.jar out of a set of Java dependencies.
1155 template("deps_dex") { 1378 template("deps_dex") {
1156 set_sources_assignment_filter([]) 1379 set_sources_assignment_filter([])
1157 build_config = "$target_gen_dir/${target_name}.build_config" 1380 build_config = "$target_gen_dir/${target_name}.build_config"
1158 write_build_config("${target_name}__build_config") { 1381 build_config_target_name = "${target_name}__build_config"
1382
1383 write_build_config(build_config_target_name) {
1159 type = "deps_dex" 1384 type = "deps_dex"
1160 deps = invoker.deps 1385 deps = invoker.deps
1161 1386
1162 build_config = build_config 1387 build_config = build_config
1163 dex_path = invoker.dex_path 1388 dex_path = invoker.dex_path
1164 } 1389 }
1165 1390
1166 rebased_build_config = rebase_path(build_config, root_build_dir) 1391 rebased_build_config = rebase_path(build_config, root_build_dir)
1167 dex(target_name) { 1392 dex(target_name) {
1168 inputs = [ 1393 inputs = [
1169 build_config, 1394 build_config,
1170 ] 1395 ]
1171 output = invoker.dex_path 1396 output = invoker.dex_path
1172 dex_arg_key = "${rebased_build_config}:final_dex:dependency_dex_files" 1397 dex_arg_key = "${rebased_build_config}:final_dex:dependency_dex_files"
1173 args = [ "--inputs=@FileArg($dex_arg_key)" ] 1398 args = [ "--inputs=@FileArg($dex_arg_key)" ]
1174 if (defined(invoker.excluded_jars)) { 1399 if (defined(invoker.excluded_jars)) {
1175 excluded_jars = rebase_path(invoker.excluded_jars, root_build_dir) 1400 excluded_jars = rebase_path(invoker.excluded_jars, root_build_dir)
1176 args += [ "--excluded-paths=${excluded_jars}" ] 1401 args += [ "--excluded-paths=${excluded_jars}" ]
1177 } 1402 }
1403 deps = [
1404 ":$build_config_target_name",
1405 ]
1178 } 1406 }
1179 } 1407 }
1180 1408
1181 # Creates an AndroidManifest.xml for an APK split. 1409 # Creates an AndroidManifest.xml for an APK split.
1182 template("generate_split_manifest") { 1410 template("generate_split_manifest") {
1183 assert(defined(invoker.main_manifest)) 1411 assert(defined(invoker.main_manifest))
1184 assert(defined(invoker.out_manifest)) 1412 assert(defined(invoker.out_manifest))
1185 assert(defined(invoker.split_name)) 1413 assert(defined(invoker.split_name))
1186 1414
1187 action(target_name) { 1415 action(target_name) {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1220 script = "//build/android/gyp/generate_split_manifest.py" 1448 script = "//build/android/gyp/generate_split_manifest.py"
1221 outputs = [ 1449 outputs = [
1222 depfile, 1450 depfile,
1223 invoker.out_manifest, 1451 invoker.out_manifest,
1224 ] 1452 ]
1225 inputs = [ 1453 inputs = [
1226 invoker.main_manifest, 1454 invoker.main_manifest,
1227 ] 1455 ]
1228 } 1456 }
1229 } 1457 }
1458
1459 # Generates a script in the output bin directory which runs the test
1460 # target using the test runner script in build/android/test_runner.py.
1461 template("test_runner_script") {
1462 testonly = true
1463 _test_name = invoker.test_name
1464 _test_type = invoker.test_type
1465
1466 action(target_name) {
1467 script = "//build/android/gyp/create_test_runner_script.py"
1468 depfile = "$target_gen_dir/$target_name.d"
1469
1470 test_runner_args = [
1471 _test_type,
1472 "--output-directory",
1473 rebase_path(root_build_dir, root_build_dir),
1474 ]
1475 if (_test_type == "gtest") {
1476 assert(defined(invoker.test_suite))
1477 test_runner_args += [
1478 "--suite",
1479 invoker.test_suite,
1480 ]
1481 } else if (_test_type == "instrumentation") {
1482 assert(defined(invoker.test_apk))
1483 test_runner_args += [
1484 "--test-apk",
1485 invoker.test_apk,
1486 ]
1487 } else {
1488 assert(false, "Invalid test type: $_test_type.")
1489 }
1490
1491 if (defined(invoker.isolate_file)) {
1492 test_runner_args += [
1493 "--isolate-file-path",
1494 rebase_path(invoker.isolate_file, root_build_dir),
1495 ]
1496 }
1497
1498 generated_script = "$root_build_dir/bin/run_${_test_name}"
1499 outputs = [
1500 depfile,
1501 generated_script,
1502 ]
1503 args = [
1504 "--depfile",
1505 rebase_path(depfile, root_build_dir),
1506 "--script-output-path",
1507 rebase_path(generated_script, root_build_dir),
1508 ]
1509 args += test_runner_args
1510 }
1511 }
OLDNEW
« no previous file with comments | « build/config/android/config.gni ('k') | build/config/android/rules.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698