OLD | NEW |
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("//base/android/linker/config.gni") | 5 import("//base/android/linker/config.gni") |
6 import("//build/config/android/config.gni") | 6 import("//build/config/android/config.gni") |
7 import("//build/config/android/internal_rules.gni") | 7 import("//build/config/android/internal_rules.gni") |
| 8 import("//third_party/android_platform/config.gni") |
8 import("//tools/grit/grit_rule.gni") | 9 import("//tools/grit/grit_rule.gni") |
9 import("//tools/relocation_packer/config.gni") | |
10 | 10 |
11 assert(is_android) | 11 assert(is_android) |
12 | 12 |
13 # Declare a jni target | 13 # Declare a jni target |
14 # | 14 # |
15 # This target generates the native jni bindings for a set of .java files. | 15 # This target generates the native jni bindings for a set of .java files. |
16 # | 16 # |
17 # See base/android/jni_generator/jni_generator.py for more info about the | 17 # See base/android/jni_generator/jni_generator.py for more info about the |
18 # format of generating JNI bindings. | 18 # format of generating JNI bindings. |
19 # | 19 # |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 | 246 |
247 assert(defined(invoker.sources)) | 247 assert(defined(invoker.sources)) |
248 package_name = invoker.package_name + "" | 248 package_name = invoker.package_name + "" |
249 | 249 |
250 if (defined(invoker.include_path)) { | 250 if (defined(invoker.include_path)) { |
251 include_path = invoker.include_path + "" | 251 include_path = invoker.include_path + "" |
252 } else { | 252 } else { |
253 include_path = "//" | 253 include_path = "//" |
254 } | 254 } |
255 | 255 |
256 action_foreach("${target_name}__apply_gcc") { | 256 apply_gcc_target_name = "${target_name}__apply_gcc" |
| 257 zip_srcjar_target_name = "${target_name}__zip_srcjar" |
| 258 final_target_name = target_name |
| 259 |
| 260 action_foreach(apply_gcc_target_name) { |
| 261 visibility = [ ":$zip_srcjar_target_name" ] |
257 script = "//build/android/gyp/gcc_preprocess.py" | 262 script = "//build/android/gyp/gcc_preprocess.py" |
258 if (defined(invoker.inputs)) { | 263 if (defined(invoker.inputs)) { |
259 inputs = invoker.inputs + [] | 264 inputs = invoker.inputs + [] |
260 } | 265 } |
261 depfile = "${target_gen_dir}/${target_name}_{{source_name_part}}.d" | 266 depfile = "${target_gen_dir}/${target_name}_{{source_name_part}}.d" |
262 | 267 |
263 sources = invoker.sources | 268 sources = invoker.sources |
264 | 269 |
| 270 if (defined(invoker.deps)) { |
| 271 deps = invoker.deps |
| 272 } |
| 273 if (defined(invoker.public_deps)) { |
| 274 public_deps = invoker.public_deps |
| 275 } |
| 276 if (defined(invoker.data_deps)) { |
| 277 data_deps = invoker.data_deps |
| 278 } |
| 279 |
265 gen_dir = | 280 gen_dir = |
266 "${target_gen_dir}/${target_name}/java_cpp_template/${package_name}" | 281 "${target_gen_dir}/${target_name}/java_cpp_template/${package_name}" |
267 gcc_template_output_pattern = "${gen_dir}/{{source_name_part}}.java" | 282 gcc_template_output_pattern = "${gen_dir}/{{source_name_part}}.java" |
268 | 283 |
269 outputs = [ | 284 outputs = [ |
270 depfile, | 285 depfile, |
271 gcc_template_output_pattern, | 286 gcc_template_output_pattern, |
272 ] | 287 ] |
273 | 288 |
274 args = [ | 289 args = [ |
275 "--depfile", | 290 "--depfile", |
276 rebase_path(depfile, root_build_dir), | 291 rebase_path(depfile, root_build_dir), |
277 "--include-path", | 292 "--include-path", |
278 rebase_path(include_path, root_build_dir), | 293 rebase_path(include_path, root_build_dir), |
279 "--output", | 294 "--output", |
280 rebase_path(gen_dir, root_build_dir) + "/{{source_name_part}}.java", | 295 rebase_path(gen_dir, root_build_dir) + "/{{source_name_part}}.java", |
281 "--template={{source}}", | 296 "--template={{source}}", |
282 ] | 297 ] |
283 | 298 |
284 if (defined(invoker.defines)) { | 299 if (defined(invoker.defines)) { |
285 foreach(def, invoker.defines) { | 300 foreach(def, invoker.defines) { |
286 args += [ | 301 args += [ |
287 "--defines", | 302 "--defines", |
288 def, | 303 def, |
289 ] | 304 ] |
290 } | 305 } |
291 } | 306 } |
292 } | 307 } |
293 | 308 |
294 apply_gcc_outputs = get_target_outputs(":${target_name}__apply_gcc") | 309 apply_gcc_outputs = get_target_outputs(":$apply_gcc_target_name") |
295 base_gen_dir = get_label_info(":${target_name}__apply_gcc", "target_gen_dir") | 310 base_gen_dir = get_label_info(":$apply_gcc_target_name", "target_gen_dir") |
296 | 311 |
297 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" | 312 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" |
298 zip("${target_name}__zip_srcjar") { | 313 zip(zip_srcjar_target_name) { |
| 314 visibility = [ ":$final_target_name" ] |
299 inputs = apply_gcc_outputs | 315 inputs = apply_gcc_outputs |
300 output = srcjar_path | 316 output = srcjar_path |
301 base_dir = base_gen_dir | 317 base_dir = base_gen_dir |
| 318 deps = [ |
| 319 ":$apply_gcc_target_name", |
| 320 ] |
302 } | 321 } |
303 | 322 |
304 group(target_name) { | 323 group(final_target_name) { |
| 324 if (defined(invoker.visibility)) { |
| 325 visibility = invoker.visibility |
| 326 } |
305 deps = [ | 327 deps = [ |
306 ":${target_name}__zip_srcjar", | 328 ":$zip_srcjar_target_name", |
307 ] | 329 ] |
308 } | 330 } |
309 } | 331 } |
310 | 332 |
311 # Declare a target for generating Java classes from C++ enums. | 333 # Declare a target for generating Java classes from C++ enums. |
312 # | 334 # |
313 # This target generates Java files from C++ enums using a script. | 335 # This target generates Java files from C++ enums using a script. |
314 # | 336 # |
315 # This target will create a single .srcjar. Adding this target to an | 337 # This target will create a single .srcjar. Adding this target to an |
316 # android_library target's srcjar_deps will make the generated java files be | 338 # android_library target's srcjar_deps will make the generated java files be |
(...skipping 20 matching lines...) Expand all Loading... |
337 # } | 359 # } |
338 template("java_cpp_enum") { | 360 template("java_cpp_enum") { |
339 set_sources_assignment_filter([]) | 361 set_sources_assignment_filter([]) |
340 if (defined(invoker.testonly)) { | 362 if (defined(invoker.testonly)) { |
341 testonly = invoker.testonly | 363 testonly = invoker.testonly |
342 } | 364 } |
343 | 365 |
344 assert(defined(invoker.sources)) | 366 assert(defined(invoker.sources)) |
345 assert(defined(invoker.outputs)) | 367 assert(defined(invoker.outputs)) |
346 | 368 |
347 action("${target_name}__generate_enum") { | 369 generate_enum_target_name = "${target_name}__generate_enum" |
| 370 zip_srcjar_target_name = "${target_name}__zip_srcjar" |
| 371 final_target_name = target_name |
| 372 |
| 373 action(generate_enum_target_name) { |
| 374 visibility = [ ":$zip_srcjar_target_name" ] |
| 375 |
348 # The sources aren't compiled so don't check their dependencies. | 376 # The sources aren't compiled so don't check their dependencies. |
349 check_includes = false | 377 check_includes = false |
350 | 378 |
351 sources = invoker.sources | 379 sources = invoker.sources |
352 script = "//build/android/gyp/java_cpp_enum.py" | 380 script = "//build/android/gyp/java_cpp_enum.py" |
353 gen_dir = "${target_gen_dir}/${target_name}/enums" | 381 gen_dir = "${target_gen_dir}/${target_name}/enums" |
354 outputs = | 382 outputs = |
355 get_path_info(rebase_path(invoker.outputs, ".", gen_dir), "abspath") | 383 get_path_info(rebase_path(invoker.outputs, ".", gen_dir), "abspath") |
356 | 384 |
357 args = [] | 385 args = [] |
358 foreach(output, rebase_path(outputs, root_build_dir)) { | 386 foreach(output, rebase_path(outputs, root_build_dir)) { |
359 args += [ | 387 args += [ |
360 "--assert_file", | 388 "--assert_file", |
361 output, | 389 output, |
362 ] | 390 ] |
363 } | 391 } |
364 args += [ rebase_path(gen_dir, root_build_dir) ] | 392 args += [ rebase_path(gen_dir, root_build_dir) ] |
365 args += rebase_path(invoker.sources, root_build_dir) | 393 args += rebase_path(invoker.sources, root_build_dir) |
366 } | 394 } |
367 | 395 |
368 generate_enum_outputs = get_target_outputs(":${target_name}__generate_enum") | 396 generate_enum_outputs = get_target_outputs(":$generate_enum_target_name") |
369 base_gen_dir = | 397 base_gen_dir = get_label_info(":$generate_enum_target_name", "target_gen_dir") |
370 get_label_info(":${target_name}__generate_enum", "target_gen_dir") | |
371 | 398 |
372 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" | 399 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" |
373 zip("${target_name}__zip_srcjar") { | 400 zip(zip_srcjar_target_name) { |
| 401 visibility = [ ":$final_target_name" ] |
374 inputs = generate_enum_outputs | 402 inputs = generate_enum_outputs |
375 output = srcjar_path | 403 output = srcjar_path |
376 base_dir = base_gen_dir | 404 base_dir = base_gen_dir |
| 405 deps = [ |
| 406 ":$generate_enum_target_name", |
| 407 ] |
377 } | 408 } |
378 | 409 |
379 group(target_name) { | 410 group(final_target_name) { |
| 411 if (defined(invoker.visibility)) { |
| 412 visibility = invoker.visibility |
| 413 } |
380 deps = [ | 414 deps = [ |
381 ":${target_name}__zip_srcjar", | 415 ":$zip_srcjar_target_name", |
382 ] | 416 ] |
383 } | 417 } |
384 } | 418 } |
385 | 419 |
386 # Declare a target for processing a Jinja template. | 420 # Declare a target for processing a Jinja template. |
387 # | 421 # |
388 # Variables | 422 # Variables |
389 # input: The template file to be processed. | 423 # input: The template file to be processed. |
390 # output: Where to save the result. | 424 # output: Where to save the result. |
391 # variables: (Optional) A list of variables to make available to the template | 425 # variables: (Optional) A list of variables to make available to the template |
392 # processing environment, e.g. ["name=foo", "color=red"]. | 426 # processing environment, e.g. ["name=foo", "color=red"]. |
393 # | 427 # |
394 # Example | 428 # Example |
395 # jinja_template("chrome_shell_manifest") { | 429 # jinja_template("chrome_shell_manifest") { |
396 # input = "shell/java/AndroidManifest.xml" | 430 # input = "shell/java/AndroidManifest.xml" |
397 # output = "$target_gen_dir/AndroidManifest.xml" | 431 # output = "$target_gen_dir/AndroidManifest.xml" |
398 # } | 432 # } |
399 template("jinja_template") { | 433 template("jinja_template") { |
400 set_sources_assignment_filter([]) | 434 set_sources_assignment_filter([]) |
401 if (defined(invoker.testonly)) { | 435 if (defined(invoker.testonly)) { |
402 testonly = invoker.testonly | 436 testonly = invoker.testonly |
403 } | 437 } |
404 | 438 |
405 assert(defined(invoker.input)) | 439 assert(defined(invoker.input)) |
406 assert(defined(invoker.output)) | 440 assert(defined(invoker.output)) |
407 | 441 |
408 action(target_name) { | 442 action(target_name) { |
| 443 if (defined(invoker.visibility)) { |
| 444 visibility = invoker.visibility |
| 445 } |
| 446 |
409 sources = [ | 447 sources = [ |
410 invoker.input, | 448 invoker.input, |
411 ] | 449 ] |
412 script = "//build/android/gyp/jinja_template.py" | 450 script = "//build/android/gyp/jinja_template.py" |
413 depfile = "$target_gen_dir/$target_name.d" | 451 depfile = "$target_gen_dir/$target_name.d" |
414 | 452 |
415 outputs = [ | 453 outputs = [ |
416 depfile, | 454 depfile, |
417 invoker.output, | 455 invoker.output, |
418 ] | 456 ] |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
516 # own dependencies. | 554 # own dependencies. |
517 # | 555 # |
518 # Variables | 556 # Variables |
519 # deps: Specifies the dependencies of this target. Any Android resources | 557 # deps: Specifies the dependencies of this target. Any Android resources |
520 # listed in deps will be included by libraries/apks that depend on this | 558 # listed in deps will be included by libraries/apks that depend on this |
521 # target. | 559 # target. |
522 # resource_dirs: List of directories containing resources for this target. | 560 # resource_dirs: List of directories containing resources for this target. |
523 # android_manifest: AndroidManifest.xml for this target. Defaults to | 561 # android_manifest: AndroidManifest.xml for this target. Defaults to |
524 # //build/android/AndroidManifest.xml. | 562 # //build/android/AndroidManifest.xml. |
525 # custom_package: java package for generated .java files. | 563 # custom_package: java package for generated .java files. |
526 # v14_verify_only: If true, don't generate v14/v17 resources and just verify | 564 # v14_skip: If true, don't run v14 resource generator on this. Defaults to |
527 # that the resources are v14-compliant (see | 565 # false. (see build/android/gyp/generate_v14_compatible_resources.py) |
528 # build/android/gyp/generate_v14_compatible_resources.py). Defaults to | 566 # |
529 # false. | |
530 # shared_resources: If true make a resource package that can be loaded by a | 567 # shared_resources: If true make a resource package that can be loaded by a |
531 # different application at runtime to access the package's resources. | 568 # different application at runtime to access the package's resources. |
532 # | 569 # |
533 | 570 |
534 # Example | 571 # Example |
535 # android_resources("foo_resources") { | 572 # android_resources("foo_resources") { |
536 # deps = [":foo_strings_grd"] | 573 # deps = [":foo_strings_grd"] |
537 # resource_dirs = ["res"] | 574 # resource_dirs = ["res"] |
538 # custom_package = "org.chromium.foo" | 575 # custom_package = "org.chromium.foo" |
539 # } | 576 # } |
540 template("android_resources") { | 577 template("android_resources") { |
541 set_sources_assignment_filter([]) | 578 set_sources_assignment_filter([]) |
542 if (defined(invoker.testonly)) { | 579 if (defined(invoker.testonly)) { |
543 testonly = invoker.testonly | 580 testonly = invoker.testonly |
544 } | 581 } |
545 | 582 |
546 assert(defined(invoker.resource_dirs)) | 583 assert(defined(invoker.resource_dirs)) |
547 assert(defined(invoker.android_manifest) || defined(invoker.custom_package)) | 584 assert(defined(invoker.android_manifest) || defined(invoker.custom_package)) |
548 | 585 |
549 base_path = "$target_gen_dir/$target_name" | 586 base_path = "$target_gen_dir/$target_name" |
550 zip_path = base_path + ".resources.zip" | 587 zip_path = base_path + ".resources.zip" |
551 srcjar_path = base_path + ".srcjar" | 588 srcjar_path = base_path + ".srcjar" |
552 r_text_path = base_path + "_R.txt" | 589 r_text_path = base_path + "_R.txt" |
553 build_config = base_path + ".build_config" | 590 build_config = base_path + ".build_config" |
554 | 591 |
555 write_build_config("${target_name}__build_config") { | 592 build_config_target_name = "${target_name}__build_config" |
| 593 process_resources_target_name = "${target_name}__process_resources" |
| 594 final_target_name = target_name |
| 595 |
| 596 write_build_config(build_config_target_name) { |
| 597 visibility = [ ":$process_resources_target_name" ] |
| 598 |
556 type = "android_resources" | 599 type = "android_resources" |
557 resources_zip = zip_path | 600 resources_zip = zip_path |
558 srcjar = srcjar_path | 601 srcjar = srcjar_path |
559 r_text = r_text_path | 602 r_text = r_text_path |
560 if (defined(invoker.deps)) { | 603 if (defined(invoker.deps)) { |
561 deps = invoker.deps | 604 deps = invoker.deps |
562 } | 605 } |
563 if (defined(invoker.android_manifest)) { | 606 if (defined(invoker.android_manifest)) { |
564 android_manifest = invoker.android_manifest | 607 android_manifest = invoker.android_manifest |
565 } | 608 } |
566 if (defined(invoker.custom_package)) { | 609 if (defined(invoker.custom_package)) { |
567 custom_package = invoker.custom_package | 610 custom_package = invoker.custom_package |
568 } | 611 } |
569 } | 612 } |
570 | 613 |
571 android_manifest = "//build/android/AndroidManifest.xml" | 614 android_manifest = "//build/android/AndroidManifest.xml" |
572 if (defined(invoker.android_manifest)) { | 615 if (defined(invoker.android_manifest)) { |
573 android_manifest = invoker.android_manifest | 616 android_manifest = invoker.android_manifest |
574 } | 617 } |
575 | 618 |
576 process_resources("${target_name}__process_resources") { | 619 process_resources(process_resources_target_name) { |
| 620 visibility = [ ":$final_target_name" ] |
| 621 |
577 resource_dirs = invoker.resource_dirs | 622 resource_dirs = invoker.resource_dirs |
578 if (defined(invoker.custom_package)) { | 623 if (defined(invoker.custom_package)) { |
579 custom_package = invoker.custom_package | 624 custom_package = invoker.custom_package |
580 } | 625 } |
581 | 626 |
582 if (defined(invoker.v14_verify_only)) { | 627 if (defined(invoker.v14_skip)) { |
583 v14_verify_only = invoker.v14_verify_only | 628 v14_skip = invoker.v14_skip |
584 } | 629 } |
585 | 630 |
586 if (defined(invoker.shared_resources)) { | 631 if (defined(invoker.shared_resources)) { |
587 shared_resources = invoker.shared_resources | 632 shared_resources = invoker.shared_resources |
588 } | 633 } |
| 634 |
| 635 deps = [ |
| 636 ":$build_config_target_name", |
| 637 ] |
| 638 if (defined(invoker.deps)) { |
| 639 # Invoker may have added deps that generate the input resources. |
| 640 deps += invoker.deps |
| 641 } |
589 } | 642 } |
590 | 643 |
591 group(target_name) { | 644 group(final_target_name) { |
| 645 if (defined(invoker.visibility)) { |
| 646 visibility = invoker.visibility |
| 647 } |
592 deps = [ | 648 deps = [ |
593 ":${target_name}__build_config", | |
594 ":${target_name}__process_resources", | 649 ":${target_name}__process_resources", |
595 ] | 650 ] |
596 } | 651 } |
597 } | 652 } |
598 | 653 |
599 # Declare a target that generates localized strings.xml from a .grd file. | 654 # Declare a target that generates localized strings.xml from a .grd file. |
600 # | 655 # |
601 # If this target is included in the deps of an android resources/library/apk, | 656 # If this target is included in the deps of an android resources/library/apk, |
602 # the strings.xml will be included with that target. | 657 # the strings.xml will be included with that target. |
603 # | 658 # |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
644 } | 699 } |
645 | 700 |
646 # This needs to get outputs from grit's internal target, not the final | 701 # This needs to get outputs from grit's internal target, not the final |
647 # source_set. | 702 # source_set. |
648 generate_strings_outputs = get_target_outputs(":${grit_target_name}_grit") | 703 generate_strings_outputs = get_target_outputs(":${grit_target_name}_grit") |
649 | 704 |
650 zip("${target_name}__zip") { | 705 zip("${target_name}__zip") { |
651 base_dir = grit_output_dir | 706 base_dir = grit_output_dir |
652 inputs = generate_strings_outputs | 707 inputs = generate_strings_outputs |
653 output = resources_zip | 708 output = resources_zip |
| 709 deps = [ |
| 710 ":$grit_target_name", |
| 711 ] |
654 } | 712 } |
655 | 713 |
656 group(target_name) { | 714 group(target_name) { |
657 deps = [ | 715 deps = [ |
658 ":${target_name}__build_config", | 716 ":${target_name}__build_config", |
659 ":${target_name}__zip", | 717 ":${target_name}__zip", |
660 ] | 718 ] |
661 } | 719 } |
662 } | 720 } |
663 | 721 |
(...skipping 16 matching lines...) Expand all Loading... |
680 template("java_strings_grd_prebuilt") { | 738 template("java_strings_grd_prebuilt") { |
681 set_sources_assignment_filter([]) | 739 set_sources_assignment_filter([]) |
682 if (defined(invoker.testonly)) { | 740 if (defined(invoker.testonly)) { |
683 testonly = invoker.testonly | 741 testonly = invoker.testonly |
684 } | 742 } |
685 | 743 |
686 base_path = "$target_gen_dir/$target_name" | 744 base_path = "$target_gen_dir/$target_name" |
687 resources_zip = base_path + ".resources.zip" | 745 resources_zip = base_path + ".resources.zip" |
688 build_config = base_path + ".build_config" | 746 build_config = base_path + ".build_config" |
689 | 747 |
690 write_build_config("${target_name}__build_config") { | 748 build_config_target_name = "${target_name}__build_config" |
| 749 zip_target_name = "${target_name}__zip" |
| 750 final_target_name = target_name |
| 751 |
| 752 write_build_config(build_config_target_name) { |
| 753 visibility = [ ":$zip_target_name" ] |
691 type = "android_resources" | 754 type = "android_resources" |
| 755 } |
| 756 |
| 757 zip(zip_target_name) { |
| 758 visibility = [ ":$final_target_name" ] |
| 759 |
| 760 base_dir = invoker.grit_output_dir |
| 761 inputs = rebase_path(invoker.generated_files, ".", base_dir) |
| 762 output = resources_zip |
| 763 deps = [ |
| 764 ":$build_config_target_name", |
| 765 ] |
692 if (defined(invoker.deps)) { | 766 if (defined(invoker.deps)) { |
693 deps = invoker.deps | 767 deps += invoker.deps |
694 } | 768 } |
695 } | 769 } |
696 | 770 |
697 zip("${target_name}__zip") { | 771 group(final_target_name) { |
698 base_dir = invoker.grit_output_dir | 772 if (defined(invoker.visibility)) { |
699 inputs = rebase_path(invoker.generated_files, ".", base_dir) | 773 visibility = invoker.visibility |
700 output = resources_zip | 774 } |
701 } | |
702 | |
703 group(target_name) { | |
704 deps = [ | 775 deps = [ |
705 ":${target_name}__build_config", | 776 ":$zip_target_name", |
706 ":${target_name}__zip", | |
707 ] | 777 ] |
708 } | 778 } |
709 } | 779 } |
710 | 780 |
711 # Declare a Java executable target | 781 # Declare a Java executable target |
712 # | 782 # |
713 # This target creates an executable from java code and libraries. The executable | 783 # This target creates an executable from java code and libraries. The executable |
714 # will be in the output folder's /bin/ directory. | 784 # will be in the output folder's /bin/ directory. |
715 # | 785 # |
716 # Variables | 786 # Variables |
717 # deps: Specifies the dependencies of this target. Java targets in this list | 787 # deps: Specifies the dependencies of this target. Java targets in this list |
718 # will be included in the executable (and the javac classpath). | 788 # will be included in the executable (and the javac classpath). |
719 # | 789 # |
720 # java_files: List of .java files included in this library. | 790 # java_files: List of .java files included in this library. |
721 # srcjar_deps: List of srcjar dependencies. The .java files in the srcjars | 791 # srcjar_deps: List of srcjar dependencies. The .java files in the srcjars |
722 # will be added to java_files and be included in this library. | 792 # will be added to java_files and be included in this library. |
723 # srcjars: List of srcjars to be included in this library, together with the | 793 # srcjars: List of srcjars to be included in this library, together with the |
724 # ones obtained from srcjar_deps. | 794 # ones obtained from srcjar_deps. |
725 # | 795 # |
726 # bypass_platform_checks: Disables checks about cross-platform (Java/Android) | 796 # bypass_platform_checks: Disables checks about cross-platform (Java/Android) |
727 # dependencies for this target. This will allow depending on an | 797 # dependencies for this target. This will allow depending on an |
728 # android_library target, for example. | 798 # android_library target, for example. |
729 # | 799 # |
730 # chromium_code: If true, extra analysis warning/errors will be enabled. | 800 # chromium_code: If true, extra analysis warning/errors will be enabled. |
731 # | 801 # |
732 # datadeps, testonly | 802 # data_deps, testonly |
733 # | 803 # |
734 # Example | 804 # Example |
735 # java_binary("foo") { | 805 # java_binary("foo") { |
736 # java_files = [ "org/chromium/foo/FooMain.java" ] | 806 # java_files = [ "org/chromium/foo/FooMain.java" ] |
737 # deps = [ ":bar_java" ] | 807 # deps = [ ":bar_java" ] |
738 # main_class = "org.chromium.foo.FooMain" | 808 # main_class = "org.chromium.foo.FooMain" |
739 # } | 809 # } |
740 template("java_binary") { | 810 template("java_binary") { |
741 set_sources_assignment_filter([]) | 811 set_sources_assignment_filter([]) |
742 | 812 |
743 # TODO(cjhopman): This should not act like a java_library for dependents (i.e. | 813 # TODO(cjhopman): This should not act like a java_library for dependents (i.e. |
744 # dependents shouldn't get the jar in their classpath, etc.). | 814 # dependents shouldn't get the jar in their classpath, etc.). |
745 java_library_impl(target_name) { | 815 java_library_impl(target_name) { |
746 if (defined(invoker.DEPRECATED_java_in_dir)) { | 816 if (defined(invoker.DEPRECATED_java_in_dir)) { |
747 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir | 817 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir |
748 } | 818 } |
749 if (defined(invoker.chromium_code)) { | 819 if (defined(invoker.chromium_code)) { |
750 chromium_code = invoker.chromium_code | 820 chromium_code = invoker.chromium_code |
751 } | 821 } |
752 if (defined(invoker.datadeps)) { | 822 if (defined(invoker.data_deps)) { |
753 deps = invoker.datadeps | 823 deps = invoker.data_deps |
754 } | 824 } |
755 if (defined(invoker.deps)) { | 825 if (defined(invoker.deps)) { |
756 deps = invoker.deps | 826 deps = invoker.deps |
757 } | 827 } |
758 if (defined(invoker.java_files)) { | 828 if (defined(invoker.java_files)) { |
759 java_files = invoker.java_files | 829 java_files = invoker.java_files |
760 } | 830 } |
761 if (defined(invoker.srcjar_deps)) { | 831 if (defined(invoker.srcjar_deps)) { |
762 srcjar_deps = invoker.srcjar_deps | 832 srcjar_deps = invoker.srcjar_deps |
763 } | 833 } |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
856 # be used to remove unwanted parts of the library. | 926 # be used to remove unwanted parts of the library. |
857 # proguard_config: Path to the proguard config for preprocessing. | 927 # proguard_config: Path to the proguard config for preprocessing. |
858 # | 928 # |
859 # supports_android: If true, Android targets (android_library, android_apk) | 929 # supports_android: If true, Android targets (android_library, android_apk) |
860 # may depend on this target. Note: if true, this target must only use the | 930 # may depend on this target. Note: if true, this target must only use the |
861 # subset of Java available on Android. | 931 # subset of Java available on Android. |
862 # bypass_platform_checks: Disables checks about cross-platform (Java/Android) | 932 # bypass_platform_checks: Disables checks about cross-platform (Java/Android) |
863 # dependencies for this target. This will allow depending on an | 933 # dependencies for this target. This will allow depending on an |
864 # android_library target, for example. | 934 # android_library target, for example. |
865 # | 935 # |
866 # datadeps, testonly | 936 # data_deps, testonly |
867 # | 937 # |
868 # Example | 938 # Example |
869 # java_library("foo_java") { | 939 # java_library("foo_java") { |
870 # java_files = [ | 940 # java_files = [ |
871 # "org/chromium/foo/Foo.java", | 941 # "org/chromium/foo/Foo.java", |
872 # "org/chromium/foo/FooInterface.java", | 942 # "org/chromium/foo/FooInterface.java", |
873 # "org/chromium/foo/FooService.java", | 943 # "org/chromium/foo/FooService.java", |
874 # ] | 944 # ] |
875 # deps = [ | 945 # deps = [ |
876 # ":bar_java" | 946 # ":bar_java" |
877 # ] | 947 # ] |
878 # srcjar_deps = [ | 948 # srcjar_deps = [ |
879 # ":foo_generated_enum" | 949 # ":foo_generated_enum" |
880 # ] | 950 # ] |
881 # jar_excluded_patterns = [ | 951 # jar_excluded_patterns = [ |
882 # "*/FooService.class", "*/FooService##*.class" | 952 # "*/FooService.class", "*/FooService##*.class" |
883 # ] | 953 # ] |
884 # } | 954 # } |
885 template("java_library") { | 955 template("java_library") { |
886 set_sources_assignment_filter([]) | 956 set_sources_assignment_filter([]) |
887 java_library_impl(target_name) { | 957 java_library_impl(target_name) { |
888 if (defined(invoker.DEPRECATED_java_in_dir)) { | 958 if (defined(invoker.DEPRECATED_java_in_dir)) { |
889 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir | 959 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir |
890 } | 960 } |
891 if (defined(invoker.chromium_code)) { | 961 if (defined(invoker.chromium_code)) { |
892 chromium_code = invoker.chromium_code | 962 chromium_code = invoker.chromium_code |
893 } | 963 } |
894 if (defined(invoker.datadeps)) { | 964 if (defined(invoker.data_deps)) { |
895 deps = invoker.datadeps | 965 deps = invoker.data_deps |
896 } | 966 } |
897 if (defined(invoker.deps)) { | 967 if (defined(invoker.deps)) { |
898 deps = invoker.deps | 968 deps = invoker.deps |
899 } | 969 } |
900 if (defined(invoker.jar_excluded_patterns)) { | 970 if (defined(invoker.jar_excluded_patterns)) { |
901 jar_excluded_patterns = invoker.jar_excluded_patterns | 971 jar_excluded_patterns = invoker.jar_excluded_patterns |
902 } | 972 } |
903 if (defined(invoker.java_files)) { | 973 if (defined(invoker.java_files)) { |
904 java_files = invoker.java_files | 974 java_files = invoker.java_files |
905 } | 975 } |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1020 set_sources_assignment_filter([]) | 1090 set_sources_assignment_filter([]) |
1021 assert(!defined(invoker.jar_path), | 1091 assert(!defined(invoker.jar_path), |
1022 "android_library does not support a custom jar path") | 1092 "android_library does not support a custom jar path") |
1023 java_library_impl(target_name) { | 1093 java_library_impl(target_name) { |
1024 if (defined(invoker.DEPRECATED_java_in_dir)) { | 1094 if (defined(invoker.DEPRECATED_java_in_dir)) { |
1025 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir | 1095 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir |
1026 } | 1096 } |
1027 if (defined(invoker.chromium_code)) { | 1097 if (defined(invoker.chromium_code)) { |
1028 chromium_code = invoker.chromium_code | 1098 chromium_code = invoker.chromium_code |
1029 } | 1099 } |
1030 if (defined(invoker.datadeps)) { | 1100 if (defined(invoker.data_deps)) { |
1031 deps = invoker.datadeps | 1101 deps = invoker.data_deps |
1032 } | 1102 } |
1033 if (defined(invoker.deps)) { | 1103 if (defined(invoker.deps)) { |
1034 deps = invoker.deps | 1104 deps = invoker.deps |
1035 } | 1105 } |
1036 if (defined(invoker.jar_excluded_patterns)) { | 1106 if (defined(invoker.jar_excluded_patterns)) { |
1037 jar_excluded_patterns = invoker.jar_excluded_patterns | 1107 jar_excluded_patterns = invoker.jar_excluded_patterns |
1038 } | 1108 } |
1039 if (defined(invoker.java_files)) { | 1109 if (defined(invoker.java_files)) { |
1040 java_files = invoker.java_files | 1110 java_files = invoker.java_files |
1041 } | 1111 } |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1140 } | 1210 } |
1141 } | 1211 } |
1142 | 1212 |
1143 # Declare an Android apk target | 1213 # Declare an Android apk target |
1144 # | 1214 # |
1145 # This target creates an Android APK containing java code, resources, assets, | 1215 # This target creates an Android APK containing java code, resources, assets, |
1146 # and (possibly) native libraries. | 1216 # and (possibly) native libraries. |
1147 # | 1217 # |
1148 # Variables | 1218 # Variables |
1149 # android_manifest: Path to AndroidManifest.xml. | 1219 # android_manifest: Path to AndroidManifest.xml. |
1150 # datadeps: List of dependencies needed at runtime. These will be built but | 1220 # data_deps: List of dependencies needed at runtime. These will be built but |
1151 # won't change the generated .apk in any way (in fact they may be built | 1221 # won't change the generated .apk in any way (in fact they may be built |
1152 # after the .apk is). | 1222 # after the .apk is). |
1153 # deps: List of dependencies. All Android java resources and libraries in the | 1223 # deps: List of dependencies. All Android java resources and libraries in the |
1154 # "transitive closure" of these dependencies will be included in the apk. | 1224 # "transitive closure" of these dependencies will be included in the apk. |
1155 # Note: this "transitive closure" actually only includes such targets if | 1225 # Note: this "transitive closure" actually only includes such targets if |
1156 # they are depended on through android_library or android_resources targets | 1226 # they are depended on through android_library or android_resources targets |
1157 # (and so not through builtin targets like 'action', 'group', etc). | 1227 # (and so not through builtin targets like 'action', 'group', etc). |
1158 # java_files: List of .java files to include in the apk. | 1228 # java_files: List of .java files to include in the apk. |
1159 # srcjar_deps: List of srcjar dependencies. The .java files in the srcjars | 1229 # srcjar_deps: List of srcjar dependencies. The .java files in the srcjars |
1160 # will be added to java_files and be included in this apk. | 1230 # will be added to java_files and be included in this apk. |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1197 if (defined(invoker.testonly)) { | 1267 if (defined(invoker.testonly)) { |
1198 testonly = invoker.testonly | 1268 testonly = invoker.testonly |
1199 } | 1269 } |
1200 | 1270 |
1201 assert(defined(invoker.final_apk_path) || defined(invoker.apk_name)) | 1271 assert(defined(invoker.final_apk_path) || defined(invoker.apk_name)) |
1202 assert(defined(invoker.android_manifest)) | 1272 assert(defined(invoker.android_manifest)) |
1203 gen_dir = "$target_gen_dir/$target_name" | 1273 gen_dir = "$target_gen_dir/$target_name" |
1204 base_path = "$gen_dir/$target_name" | 1274 base_path = "$gen_dir/$target_name" |
1205 _build_config = "$target_gen_dir/$target_name.build_config" | 1275 _build_config = "$target_gen_dir/$target_name.build_config" |
1206 resources_zip_path = "$base_path.resources.zip" | 1276 resources_zip_path = "$base_path.resources.zip" |
1207 all_resources_zip_path = "$base_path.resources.all.zip" | 1277 _all_resources_zip_path = "$base_path.resources.all.zip" |
1208 jar_path = "$base_path.jar" | 1278 jar_path = "$base_path.jar" |
| 1279 _template_name = target_name |
| 1280 |
1209 final_dex_path = "$gen_dir/classes.dex" | 1281 final_dex_path = "$gen_dir/classes.dex" |
1210 _template_name = target_name | 1282 final_dex_target_name = "${_template_name}__final_dex" |
| 1283 |
1211 _final_apk_path = "" | 1284 _final_apk_path = "" |
1212 if (defined(invoker.final_apk_path)) { | 1285 if (defined(invoker.final_apk_path)) { |
1213 _final_apk_path = invoker.final_apk_path | 1286 _final_apk_path = invoker.final_apk_path |
1214 } else if (defined(invoker.apk_name)) { | 1287 } else if (defined(invoker.apk_name)) { |
1215 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk" | 1288 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk" |
1216 } | 1289 } |
1217 _dist_jar_path_list = | 1290 _dist_jar_path_list = |
1218 process_file_template( | 1291 process_file_template( |
1219 [ _final_apk_path ], | 1292 [ _final_apk_path ], |
1220 "$root_build_dir/test.lib.java/{{source_name_part}}.jar") | 1293 "$root_build_dir/test.lib.java/{{source_name_part}}.jar") |
1221 _dist_jar_path = _dist_jar_path_list[0] | 1294 _dist_jar_path = _dist_jar_path_list[0] |
1222 | 1295 |
1223 _native_libs = [] | 1296 _native_libs = [] |
1224 | 1297 |
| 1298 _version_code = "1" |
| 1299 if (defined(invoker.version_code)) { |
| 1300 _version_code = invoker.version_code |
| 1301 } |
| 1302 |
| 1303 _version_name = "Developer Build" |
| 1304 if (defined(invoker.version_name)) { |
| 1305 _version_name = invoker.version_name |
| 1306 } |
1225 _keystore_path = android_default_keystore_path | 1307 _keystore_path = android_default_keystore_path |
1226 _keystore_name = android_default_keystore_name | 1308 _keystore_name = android_default_keystore_name |
1227 _keystore_password = android_default_keystore_password | 1309 _keystore_password = android_default_keystore_password |
1228 | 1310 |
1229 if (defined(invoker.keystore_path)) { | 1311 if (defined(invoker.keystore_path)) { |
1230 _keystore_path = invoker.keystore_path | 1312 _keystore_path = invoker.keystore_path |
1231 _keystore_name = invoker.keystore_name | 1313 _keystore_name = invoker.keystore_name |
1232 _keystore_password = invoker.keystore_password | 1314 _keystore_password = invoker.keystore_password |
1233 } | 1315 } |
1234 | 1316 |
1235 _srcjar_deps = [] | 1317 _srcjar_deps = [] |
1236 if (defined(invoker.srcjar_deps)) { | 1318 if (defined(invoker.srcjar_deps)) { |
1237 _srcjar_deps += invoker.srcjar_deps | 1319 _srcjar_deps += invoker.srcjar_deps |
1238 } | 1320 } |
1239 | 1321 |
1240 _load_library_from_apk = false | 1322 _load_library_from_apk = false |
1241 | 1323 |
| 1324 # The dependency that makes the chromium linker, if any is needed. |
| 1325 _chromium_linker_dep = [] |
| 1326 |
1242 if (defined(invoker.native_libs)) { | 1327 if (defined(invoker.native_libs)) { |
1243 _use_chromium_linker = false | 1328 _use_chromium_linker = false |
1244 if (defined(invoker.use_chromium_linker)) { | 1329 if (defined(invoker.use_chromium_linker)) { |
1245 _use_chromium_linker = | 1330 _use_chromium_linker = |
1246 invoker.use_chromium_linker && chromium_linker_supported | 1331 invoker.use_chromium_linker && chromium_linker_supported |
| 1332 _chromium_linker_dep = [ "//base/android/linker:chromium_android_linker" ] |
1247 } | 1333 } |
1248 | 1334 |
1249 if (defined(invoker.load_library_from_apk) && | 1335 if (defined(invoker.load_library_from_apk) && |
1250 invoker.load_library_from_apk) { | 1336 invoker.load_library_from_apk) { |
1251 _load_library_from_apk = true | 1337 _load_library_from_apk = true |
1252 assert(_use_chromium_linker, | 1338 assert(_use_chromium_linker, |
1253 "Loading library from the apk requires use" + | 1339 "Loading library from the apk requires use" + |
1254 " of the Chromium linker.") | 1340 " of the Chromium linker.") |
1255 } | 1341 } |
1256 | 1342 |
(...skipping 23 matching lines...) Expand all Loading... |
1280 } | 1366 } |
1281 | 1367 |
1282 _native_lib_version_name = "" | 1368 _native_lib_version_name = "" |
1283 if (defined(invoker.native_lib_version_name)) { | 1369 if (defined(invoker.native_lib_version_name)) { |
1284 _native_lib_version_name = invoker.native_lib_version_name | 1370 _native_lib_version_name = invoker.native_lib_version_name |
1285 } | 1371 } |
1286 } | 1372 } |
1287 | 1373 |
1288 _android_manifest = invoker.android_manifest | 1374 _android_manifest = invoker.android_manifest |
1289 _rebased_build_config = rebase_path(_build_config, root_build_dir) | 1375 _rebased_build_config = rebase_path(_build_config, root_build_dir) |
| 1376 _create_abi_split = |
| 1377 defined(invoker.create_abi_split) && invoker.create_abi_split |
| 1378 _create_density_splits = |
| 1379 defined(invoker.create_density_splits) && invoker.create_density_splits |
1290 | 1380 |
1291 write_build_config("${_template_name}__build_config") { | 1381 # Help GN understand that _create_abi_split is not unused (bug in GN). |
| 1382 assert(_create_abi_split || true) |
| 1383 |
| 1384 build_config_target = "${_template_name}__build_config" |
| 1385 write_build_config(build_config_target) { |
1292 type = "android_apk" | 1386 type = "android_apk" |
1293 dex_path = final_dex_path | 1387 dex_path = final_dex_path |
1294 resources_zip = resources_zip_path | 1388 resources_zip = resources_zip_path |
1295 build_config = _build_config | 1389 build_config = _build_config |
1296 android_manifest = _android_manifest | 1390 android_manifest = _android_manifest |
1297 | 1391 |
| 1392 deps = _chromium_linker_dep |
1298 if (defined(invoker.deps)) { | 1393 if (defined(invoker.deps)) { |
1299 deps = invoker.deps | 1394 deps += invoker.deps |
1300 } | 1395 } |
1301 | 1396 |
1302 if (defined(invoker.apk_under_test)) { | 1397 if (defined(invoker.apk_under_test)) { |
1303 apk_under_test = invoker.apk_under_test | 1398 apk_under_test = invoker.apk_under_test |
1304 } | 1399 } |
1305 | 1400 |
1306 native_libs = _native_libs | 1401 native_libs = _native_libs |
1307 } | 1402 } |
1308 | 1403 |
1309 final_deps = [] | 1404 final_deps = [] |
1310 | 1405 |
1311 final_deps += [ ":${_template_name}__process_resources" ] | 1406 process_resources_target = "${_template_name}__process_resources" |
1312 process_resources("${_template_name}__process_resources") { | 1407 final_deps += [ ":$process_resources_target" ] |
| 1408 process_resources(process_resources_target) { |
1313 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" | 1409 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" |
1314 r_text_path = "${target_gen_dir}/${target_name}_R.txt" | 1410 r_text_path = "${target_gen_dir}/${target_name}_R.txt" |
1315 android_manifest = _android_manifest | 1411 android_manifest = _android_manifest |
1316 resource_dirs = [ "//build/android/ant/empty/res" ] | 1412 resource_dirs = [ "//build/android/ant/empty/res" ] |
1317 zip_path = resources_zip_path | 1413 zip_path = resources_zip_path |
| 1414 all_resources_zip_path = _all_resources_zip_path |
1318 generate_constant_ids = true | 1415 generate_constant_ids = true |
1319 build_config = _build_config | |
1320 | 1416 |
1321 if (defined(invoker.include_all_resources)) { | 1417 if (defined(invoker.include_all_resources)) { |
1322 include_all_resources = invoker.include_all_resources | 1418 include_all_resources = invoker.include_all_resources |
1323 } | 1419 } |
| 1420 |
| 1421 build_config = _build_config |
| 1422 deps = [ |
| 1423 ":$build_config_target", |
| 1424 ] |
| 1425 if (defined(invoker.deps)) { |
| 1426 deps += invoker.deps |
| 1427 } |
1324 } | 1428 } |
1325 _srcjar_deps += [ ":${_template_name}__process_resources" ] | 1429 _srcjar_deps += [ ":$process_resources_target" ] |
1326 | 1430 |
1327 if (_native_libs != []) { | 1431 if (_native_libs != []) { |
1328 _enable_chromium_linker_tests = false | 1432 _enable_chromium_linker_tests = false |
1329 if (defined(invoker.enable_chromium_linker_tests)) { | 1433 if (defined(invoker.enable_chromium_linker_tests)) { |
1330 _enable_chromium_linker_tests = invoker.enable_chromium_linker_tests | 1434 _enable_chromium_linker_tests = invoker.enable_chromium_linker_tests |
1331 } | 1435 } |
1332 | 1436 |
1333 java_cpp_template("${_template_name}__native_libraries_java") { | 1437 java_cpp_template("${_template_name}__native_libraries_java") { |
1334 package_name = "org/chromium/base/library_loader" | 1438 package_name = "org/chromium/base/library_loader" |
1335 sources = [ | 1439 sources = [ |
1336 "//base/android/java/templates/NativeLibraries.template", | 1440 "//base/android/java/templates/NativeLibraries.template", |
1337 ] | 1441 ] |
1338 inputs = [ | 1442 inputs = [ |
1339 _build_config, | 1443 _build_config, |
1340 ] | 1444 ] |
| 1445 deps = [ |
| 1446 ":$build_config_target", |
| 1447 ] |
1341 | 1448 |
1342 defines = [ | 1449 defines = [ |
1343 "NATIVE_LIBRARIES_LIST=" + | 1450 "NATIVE_LIBRARIES_LIST=" + |
1344 "@FileArg($_rebased_build_config:native:java_libraries_list)", | 1451 "@FileArg($_rebased_build_config:native:java_libraries_list)", |
1345 "NATIVE_LIBRARIES_VERSION_NUMBER=\"$_native_lib_version_name\"", | 1452 "NATIVE_LIBRARIES_VERSION_NUMBER=\"$_native_lib_version_name\"", |
1346 ] | 1453 ] |
1347 if (_use_chromium_linker) { | 1454 if (_use_chromium_linker) { |
1348 defines += [ "ENABLE_CHROMIUM_LINKER" ] | 1455 defines += [ "ENABLE_CHROMIUM_LINKER" ] |
1349 } | 1456 } |
1350 if (_load_library_from_apk) { | 1457 if (_load_library_from_apk) { |
1351 defines += [ "ENABLE_CHROMIUM_LINKER_LIBRARY_IN_ZIP_FILE" ] | 1458 defines += [ "ENABLE_CHROMIUM_LINKER_LIBRARY_IN_ZIP_FILE" ] |
1352 } | 1459 } |
1353 if (_enable_chromium_linker_tests) { | 1460 if (_enable_chromium_linker_tests) { |
1354 defines += [ "ENABLE_CHROMIUM_LINKER_TESTS" ] | 1461 defines += [ "ENABLE_CHROMIUM_LINKER_TESTS" ] |
1355 } | 1462 } |
1356 } | 1463 } |
1357 _srcjar_deps += [ ":${_template_name}__native_libraries_java" ] | 1464 _srcjar_deps += [ ":${_template_name}__native_libraries_java" ] |
1358 } | 1465 } |
1359 | 1466 |
1360 final_deps += [ ":${_template_name}__java" ] | 1467 java_target = "${_template_name}__java" |
1361 java_library_impl("${_template_name}__java") { | 1468 final_deps += [ ":$java_target" ] |
| 1469 java_library_impl(java_target) { |
1362 supports_android = true | 1470 supports_android = true |
1363 requires_android = true | 1471 requires_android = true |
1364 override_build_config = _build_config | 1472 override_build_config = _build_config |
| 1473 deps = [ |
| 1474 ":$build_config_target", |
| 1475 ] |
| 1476 |
1365 android_manifest = _android_manifest | 1477 android_manifest = _android_manifest |
1366 chromium_code = true | 1478 chromium_code = true |
1367 if (defined(invoker.java_files)) { | 1479 if (defined(invoker.java_files)) { |
1368 java_files = invoker.java_files | 1480 java_files = invoker.java_files |
1369 } else if (defined(invoker.DEPRECATED_java_in_dir)) { | 1481 } else if (defined(invoker.DEPRECATED_java_in_dir)) { |
1370 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir | 1482 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir |
1371 } else { | 1483 } else { |
1372 java_files = [] | 1484 java_files = [] |
1373 } | 1485 } |
1374 srcjar_deps = _srcjar_deps | 1486 srcjar_deps = _srcjar_deps |
1375 dex_path = base_path + ".dex.jar" | 1487 dex_path = base_path + ".dex.jar" |
| 1488 |
| 1489 if (defined(invoker.deps)) { |
| 1490 deps += invoker.deps |
| 1491 } |
1376 } | 1492 } |
1377 | 1493 |
1378 if (_dist_jar_path != "") { | 1494 if (_dist_jar_path != "") { |
1379 final_deps += [ ":${_template_name}__create_dist_jar" ] | 1495 create_dist_target = "${_template_name}__create_dist_jar" |
| 1496 final_deps += [ ":$create_dist_target" ] |
1380 | 1497 |
1381 # TODO(cjhopman): This is only ever needed to calculate the list of tests to | 1498 # TODO(cjhopman): This is only ever needed to calculate the list of tests to |
1382 # run. See build/android/pylib/instrumentation/test_jar.py. We should be | 1499 # run. See build/android/pylib/instrumentation/test_jar.py. We should be |
1383 # able to just do that calculation at build time instead. | 1500 # able to just do that calculation at build time instead. |
1384 action("${_template_name}__create_dist_jar") { | 1501 action(create_dist_target) { |
1385 script = "//build/android/gyp/create_dist_jar.py" | 1502 script = "//build/android/gyp/create_dist_jar.py" |
1386 depfile = "$target_gen_dir/$target_name.d" | 1503 depfile = "$target_gen_dir/$target_name.d" |
1387 inputs = [ | 1504 inputs = [ |
1388 _build_config, | 1505 _build_config, |
1389 ] | 1506 ] |
1390 outputs = [ | 1507 outputs = [ |
1391 depfile, | 1508 depfile, |
1392 _dist_jar_path, | 1509 _dist_jar_path, |
1393 ] | 1510 ] |
1394 args = [ | 1511 args = [ |
1395 "--depfile", | 1512 "--depfile", |
1396 rebase_path(depfile, root_build_dir), | 1513 rebase_path(depfile, root_build_dir), |
1397 "--output", | 1514 "--output", |
1398 rebase_path(_dist_jar_path, root_build_dir), | 1515 rebase_path(_dist_jar_path, root_build_dir), |
1399 "--inputs=@FileArg($_rebased_build_config:dist_jar:dependency_jars)", | 1516 "--inputs=@FileArg($_rebased_build_config:dist_jar:dependency_jars)", |
1400 ] | 1517 ] |
1401 inputs += [ jar_path ] | 1518 inputs += [ jar_path ] |
1402 _rebased_jar_path = rebase_path([ jar_path ], root_build_dir) | 1519 _rebased_jar_path = rebase_path([ jar_path ], root_build_dir) |
1403 args += [ "--inputs=$_rebased_jar_path" ] | 1520 args += [ "--inputs=$_rebased_jar_path" ] |
| 1521 deps = [ |
| 1522 ":$build_config_target", # Generates the build config file. |
| 1523 ":$java_target", # Generates the jar file. |
| 1524 ] |
1404 } | 1525 } |
1405 } | 1526 } |
1406 | 1527 |
1407 final_deps += [ ":${_template_name}__final_dex" ] | 1528 final_deps += [ ":$final_dex_target_name" ] |
1408 dex("${_template_name}__final_dex") { | 1529 dex("$final_dex_target_name") { |
1409 deps = [ | 1530 deps = [ |
1410 ":${_template_name}__java", | 1531 ":$build_config_target", |
| 1532 ":$java_target", |
1411 ] | 1533 ] |
1412 sources = [ | 1534 sources = [ |
1413 jar_path, | 1535 jar_path, |
1414 ] | 1536 ] |
1415 inputs = [ | 1537 inputs = [ |
1416 _build_config, | 1538 _build_config, |
1417 ] | 1539 ] |
1418 output = final_dex_path | 1540 output = final_dex_path |
1419 dex_arg_key = "${_rebased_build_config}:final_dex:dependency_dex_files" | 1541 dex_arg_key = "${_rebased_build_config}:final_dex:dependency_dex_files" |
1420 args = [ "--inputs=@FileArg($dex_arg_key)" ] | 1542 args = [ "--inputs=@FileArg($dex_arg_key)" ] |
1421 } | 1543 } |
1422 | 1544 |
1423 if (_native_libs != []) { | 1545 if (_native_libs != []) { |
1424 action("${_template_name}__prepare_native") { | 1546 action("${_template_name}__prepare_native") { |
1425 script = "//build/android/gyp/pack_arm_relocations.py" | 1547 script = "//build/android/gyp/pack_arm_relocations.py" |
1426 packed_libraries_dir = "$_native_libs_dir/$android_app_abi" | 1548 packed_libraries_dir = "$_native_libs_dir/$android_app_abi" |
1427 depfile = "$target_gen_dir/$target_name.d" | 1549 depfile = "$target_gen_dir/$target_name.d" |
1428 outputs = [ | 1550 outputs = [ |
1429 depfile, | 1551 depfile, |
1430 ] | 1552 ] |
1431 inputs = [ _build_config ] + _native_libs | 1553 |
1432 deps = [] | 1554 inputs = _native_libs |
| 1555 deps = _chromium_linker_dep |
| 1556 |
| 1557 inputs += [ _build_config ] |
| 1558 deps += [ ":$build_config_target" ] |
| 1559 |
1433 skip_packing_list = [ | 1560 skip_packing_list = [ |
1434 "gdbserver", | 1561 "gdbserver", |
1435 "libchromium_android_linker.so", | 1562 "libchromium_android_linker.so", |
1436 ] | 1563 ] |
1437 | 1564 |
1438 enable_packing_arg = 0 | 1565 enable_packing_arg = 0 |
1439 if (_enable_relocation_packing) { | 1566 if (_enable_relocation_packing) { |
1440 enable_packing_arg = 1 | 1567 enable_packing_arg = 1 |
1441 deps += [ relocation_packer_target ] | 1568 deps += [ relocation_packer_target ] |
1442 } | 1569 } |
1443 | 1570 |
1444 args = [ | 1571 args = [ |
1445 "--depfile", | 1572 "--depfile", |
1446 rebase_path(depfile, root_build_dir), | 1573 rebase_path(depfile, root_build_dir), |
1447 "--enable-packing=$enable_packing_arg", | 1574 "--enable-packing=$enable_packing_arg", |
1448 "--has-relocations-with-addends=$relocations_have_addends", | |
1449 "--exclude-packing-list=$skip_packing_list", | 1575 "--exclude-packing-list=$skip_packing_list", |
1450 "--android-pack-relocations", | 1576 "--android-pack-relocations", |
1451 rebase_path(relocation_packer_exe, root_build_dir), | 1577 rebase_path(relocation_packer_exe, root_build_dir), |
1452 "--android-objcopy", | |
1453 rebase_path(android_objcopy, root_build_dir), | |
1454 "--stripped-libraries-dir", | 1578 "--stripped-libraries-dir", |
1455 rebase_path(root_build_dir, root_build_dir), | 1579 rebase_path(root_build_dir, root_build_dir), |
1456 "--packed-libraries-dir", | 1580 "--packed-libraries-dir", |
1457 rebase_path(packed_libraries_dir, root_build_dir), | 1581 rebase_path(packed_libraries_dir, root_build_dir), |
1458 "--libraries=@FileArg(${_rebased_build_config}:native:libraries)", | 1582 "--libraries=@FileArg(${_rebased_build_config}:native:libraries)", |
1459 "--clear-dir", | 1583 "--clear-dir", |
1460 ] | 1584 ] |
1461 | 1585 |
| 1586 if (defined(invoker.deps)) { |
| 1587 deps += invoker.deps |
| 1588 } |
| 1589 if (defined(invoker.public_deps)) { |
| 1590 public_deps = invoker.public_deps |
| 1591 } |
| 1592 if (defined(invoker.data_deps)) { |
| 1593 data_deps = invoker.data_deps |
| 1594 } |
| 1595 |
1462 if (is_debug) { | 1596 if (is_debug) { |
1463 rebased_gdbserver = rebase_path([ android_gdbserver ], root_build_dir) | 1597 rebased_gdbserver = rebase_path([ android_gdbserver ], root_build_dir) |
1464 inputs += [ android_gdbserver ] | 1598 inputs += [ android_gdbserver ] |
1465 args += [ "--libraries=$rebased_gdbserver" ] | 1599 args += [ "--libraries=$rebased_gdbserver" ] |
1466 } | 1600 } |
1467 } | 1601 } |
1468 } | 1602 } |
1469 | 1603 |
1470 final_deps += [ ":${_template_name}__create" ] | 1604 final_deps += [ ":${_template_name}__create" ] |
1471 create_apk("${_template_name}__create") { | 1605 create_apk("${_template_name}__create") { |
1472 apk_path = _final_apk_path | 1606 apk_path = _final_apk_path |
1473 android_manifest = _android_manifest | 1607 android_manifest = _android_manifest |
1474 resources_zip = all_resources_zip_path | 1608 resources_zip = _all_resources_zip_path |
1475 dex_path = final_dex_path | 1609 dex_path = final_dex_path |
1476 load_library_from_apk = _load_library_from_apk | 1610 load_library_from_apk = _load_library_from_apk |
| 1611 create_density_splits = _create_density_splits |
1477 | 1612 |
1478 version_code = "1" | 1613 version_code = _version_code |
1479 if (defined(invoker.version_code)) { | 1614 version_name = _version_name |
1480 version_code = invoker.version_code | |
1481 } | |
1482 | |
1483 version_name = "Developer Build" | |
1484 if (defined(invoker.version_name)) { | |
1485 version_name = invoker.version_name | |
1486 } | |
1487 | 1615 |
1488 keystore_name = _keystore_name | 1616 keystore_name = _keystore_name |
1489 keystore_path = _keystore_path | 1617 keystore_path = _keystore_path |
1490 keystore_password = _keystore_password | 1618 keystore_password = _keystore_password |
1491 | 1619 |
1492 deps = [] | 1620 # This target generates the input file _all_resources_zip_path. |
| 1621 deps = [ |
| 1622 ":$process_resources_target", |
| 1623 ":$final_dex_target_name", |
| 1624 ] |
| 1625 if (defined(invoker.deps)) { |
| 1626 deps += invoker.deps |
| 1627 } |
| 1628 |
1493 if (defined(invoker.asset_location)) { | 1629 if (defined(invoker.asset_location)) { |
1494 asset_location = invoker.asset_location | 1630 asset_location = invoker.asset_location |
1495 | 1631 |
1496 # We don't know the exact dependencies that create the assets in | 1632 # We don't know the exact dependencies that create the assets in |
1497 # |asset_location|; we depend on all caller deps until a better solution | 1633 # |asset_location|; we depend on all caller deps until a better solution |
1498 # is figured out (http://crbug.com/433330). | 1634 # is figured out (http://crbug.com/433330). |
1499 if (defined(invoker.deps)) { | 1635 if (defined(invoker.deps)) { |
1500 deps += invoker.deps | 1636 deps += invoker.deps |
1501 } | 1637 } |
1502 } | 1638 } |
1503 | 1639 |
1504 if (_native_libs != []) { | 1640 if (_native_libs != [] && !_create_abi_split) { |
1505 native_libs_dir = _native_libs_dir | 1641 native_libs_dir = _native_libs_dir |
1506 deps += [ ":${_template_name}__prepare_native" ] | 1642 deps += [ ":${_template_name}__prepare_native" ] |
1507 } | 1643 } |
1508 } | 1644 } |
1509 | 1645 |
| 1646 if (_native_libs != [] && _create_abi_split) { |
| 1647 _manifest_rule = "${_template_name}__split_manifest_abi_${android_app_abi}" |
| 1648 generate_split_manifest(_manifest_rule) { |
| 1649 main_manifest = _android_manifest |
| 1650 out_manifest = |
| 1651 "$gen_dir/split-manifests/${android_app_abi}/AndroidManifest.xml" |
| 1652 split_name = "abi_${android_app_abi}" |
| 1653 } |
| 1654 |
| 1655 _apk_rule = "${_template_name}__split_apk_abi_${android_app_abi}" |
| 1656 final_deps += [ ":$_apk_rule" ] |
| 1657 create_apk(_apk_rule) { |
| 1658 _split_paths = process_file_template( |
| 1659 [ _final_apk_path ], |
| 1660 "{{source_dir}}/{{source_name_part}}-abi-${android_app_abi}.apk") |
| 1661 apk_path = _split_paths[0] |
| 1662 base_path = "$gen_dir/$_apk_rule" |
| 1663 |
| 1664 manifest_outputs = get_target_outputs(":${_manifest_rule}") |
| 1665 android_manifest = manifest_outputs[1] |
| 1666 load_library_from_apk = _load_library_from_apk |
| 1667 |
| 1668 version_code = _version_code |
| 1669 version_name = _version_name |
| 1670 |
| 1671 keystore_name = _keystore_name |
| 1672 keystore_path = _keystore_path |
| 1673 keystore_password = _keystore_password |
| 1674 |
| 1675 native_libs_dir = _native_libs_dir |
| 1676 deps = [ |
| 1677 ":${_template_name}__prepare_native", |
| 1678 ] |
| 1679 } |
| 1680 } |
| 1681 |
1510 group(target_name) { | 1682 group(target_name) { |
1511 deps = final_deps | 1683 deps = final_deps |
1512 if (defined(invoker.datadeps)) { | 1684 if (defined(invoker.data_deps)) { |
1513 datadeps = invoker.datadeps | 1685 data_deps = invoker.data_deps |
1514 } | 1686 } |
1515 } | 1687 } |
1516 } | 1688 } |
| 1689 |
| 1690 # Declare an Android instrumentation test apk |
| 1691 # |
| 1692 # This target creates an Android instrumentation test apk. |
| 1693 # |
| 1694 # Variables |
| 1695 # android_manifest: Path to AndroidManifest.xml. |
| 1696 # data_deps: List of dependencies needed at runtime. These will be built but |
| 1697 # won't change the generated .apk in any way (in fact they may be built |
| 1698 # after the .apk is). |
| 1699 # deps: List of dependencies. All Android java resources and libraries in the |
| 1700 # "transitive closure" of these dependencies will be included in the apk. |
| 1701 # Note: this "transitive closure" actually only includes such targets if |
| 1702 # they are depended on through android_library or android_resources targets |
| 1703 # (and so not through builtin targets like 'action', 'group', etc). |
| 1704 # java_files: List of .java files to include in the apk. |
| 1705 # srcjar_deps: List of srcjar dependencies. The .java files in the srcjars |
| 1706 # will be added to java_files and be included in this apk. |
| 1707 # apk_name: Name for final apk. |
| 1708 # final_apk_path: Path to final built apk. Default is |
| 1709 # $root_out_dir/apks/$apk_name.apk. Setting this will override apk_name. |
| 1710 # native_libs: List paths of native libraries to include in this apk. If these |
| 1711 # libraries depend on other shared_library targets, those dependencies will |
| 1712 # also be included in the apk. |
| 1713 # apk_under_test: The apk being tested. |
| 1714 # isolate_file: Isolate file containing the list of test data dependencies. |
| 1715 # |
| 1716 # DEPRECATED_java_in_dir: Directory containing java files. All .java files in |
| 1717 # this directory will be included in the library. This is only supported to |
| 1718 # ease the gyp->gn conversion and will be removed in the future. |
| 1719 # |
| 1720 # Example |
| 1721 # instrumentation_test_apk("foo_test_apk") { |
| 1722 # android_manifest = "AndroidManifest.xml" |
| 1723 # apk_name = "FooTest" |
| 1724 # apk_under_test = "Foo" |
| 1725 # java_files = [ |
| 1726 # "android/org/chromium/foo/FooTestCase.java", |
| 1727 # "android/org/chromium/foo/FooExampleTest.java", |
| 1728 # ] |
| 1729 # deps = [ |
| 1730 # ":foo_test_support_java" |
| 1731 # ] |
| 1732 # } |
| 1733 template("instrumentation_test_apk") { |
| 1734 set_sources_assignment_filter([]) |
| 1735 testonly = true |
| 1736 _template_name = target_name |
| 1737 |
| 1738 if (defined(invoker.apk_name)) { |
| 1739 test_runner_data_dep = [ ":${_template_name}__test_runner_script" ] |
| 1740 test_runner_script("${_template_name}__test_runner_script") { |
| 1741 test_name = invoker.target_name |
| 1742 test_type = "instrumentation" |
| 1743 test_apk = invoker.apk_name |
| 1744 if (defined(invoker.isolate_file)) { |
| 1745 isolate_file = invoker.isolate_file |
| 1746 } |
| 1747 } |
| 1748 } |
| 1749 |
| 1750 android_apk(target_name) { |
| 1751 if (defined(invoker.android_manifest)) { |
| 1752 android_manifest = invoker.android_manifest |
| 1753 } |
| 1754 data_deps = [ |
| 1755 "//testing/android/driver:driver_apk", |
| 1756 "//tools/android/forwarder2", |
| 1757 "//tools/android/md5sum", |
| 1758 ] |
| 1759 if (defined(test_runner_data_dep)) { |
| 1760 data_deps += test_runner_data_dep |
| 1761 } |
| 1762 if (defined(invoker.data_deps)) { |
| 1763 data_deps += invoker.data_deps |
| 1764 } |
| 1765 deps = [ |
| 1766 "//testing/android/broker:broker_java", |
| 1767 ] |
| 1768 if (defined(invoker.deps)) { |
| 1769 deps += invoker.deps |
| 1770 } |
| 1771 if (defined(invoker.java_files)) { |
| 1772 java_files = invoker.java_files |
| 1773 } |
| 1774 if (defined(invoker.srcjar_deps)) { |
| 1775 srcjar_deps = invoker.srcjar_deps |
| 1776 } |
| 1777 if (defined(invoker.apk_name)) { |
| 1778 apk_name = invoker.apk_name |
| 1779 } |
| 1780 if (defined(invoker.final_apk_path)) { |
| 1781 final_apk_path = invoker.final_apk_path |
| 1782 } |
| 1783 if (defined(invoker.native_libs)) { |
| 1784 native_libs = invoker.native_libs |
| 1785 } |
| 1786 if (defined(invoker.apk_under_test)) { |
| 1787 apk_under_test = invoker.apk_under_test |
| 1788 } |
| 1789 if (defined(invoker.DEPRECATED_java_in_dir)) { |
| 1790 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir |
| 1791 } |
| 1792 } |
| 1793 } |
1517 | 1794 |
1518 # Declare an Android gtest apk | 1795 # Declare an Android gtest apk |
1519 # | 1796 # |
1520 # This target creates an Android apk for running gtest-based unittests. | 1797 # This target creates an Android apk for running gtest-based unittests. |
1521 # | 1798 # |
1522 # Variables | 1799 # Variables |
1523 # deps: Specifies the dependencies of this target. These will be passed to | 1800 # deps: Specifies the dependencies of this target. These will be passed to |
1524 # the underlying android_apk invocation and should include the java and | 1801 # the underlying android_apk invocation and should include the java and |
1525 # resource dependencies of the apk. | 1802 # resource dependencies of the apk. |
1526 # unittests_dep: This should be the label of the gtest native target. This | 1803 # unittests_dep: This should be the label of the gtest native target. This |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1558 | 1835 |
1559 if (defined(invoker.apk_name)) { | 1836 if (defined(invoker.apk_name)) { |
1560 apk_name = invoker.apk_name | 1837 apk_name = invoker.apk_name |
1561 } else { | 1838 } else { |
1562 apk_name = test_suite_name | 1839 apk_name = test_suite_name |
1563 } | 1840 } |
1564 | 1841 |
1565 android_apk(target_name) { | 1842 android_apk(target_name) { |
1566 final_apk_path = "$root_build_dir/${apk_name}_apk/${apk_name}-debug.apk" | 1843 final_apk_path = "$root_build_dir/${apk_name}_apk/${apk_name}-debug.apk" |
1567 java_files = [ | 1844 java_files = [ |
| 1845 "//testing/android/native_test/java/src/org/chromium/native_test/NativeBro
wserTestActivity.java", |
1568 "//testing/android/native_test/java/src/org/chromium/native_test/NativeTes
tActivity.java", | 1846 "//testing/android/native_test/java/src/org/chromium/native_test/NativeTes
tActivity.java", |
| 1847 "//testing/android/native_test/java/src/org/chromium/native_test/NativeUni
tTestActivity.java", |
1569 "//testing/android/native_test/java/src/org/chromium/native_test/NativeTes
tInstrumentationTestRunner.java", | 1848 "//testing/android/native_test/java/src/org/chromium/native_test/NativeTes
tInstrumentationTestRunner.java", |
1570 ] | 1849 ] |
1571 android_manifest = "//testing/android/native_test/java/AndroidManifest.xml" | 1850 android_manifest = "//testing/android/native_test/java/AndroidManifest.xml" |
1572 native_libs = [ unittests_binary ] | 1851 native_libs = [ unittests_binary ] |
1573 if (defined(invoker.asset_location)) { | 1852 if (defined(invoker.asset_location)) { |
1574 asset_location = invoker.asset_location | 1853 asset_location = invoker.asset_location |
1575 } | 1854 } |
1576 deps = [ | 1855 deps = [ |
1577 "//base:base_java", | 1856 "//base:base_java", |
1578 "//build/android/pylib/remote/device/dummy:remote_device_dummy_apk", | 1857 "//build/android/pylib/remote/device/dummy:remote_device_dummy_apk", |
1579 "//testing/android/appurify_support:appurify_support_java", | 1858 "//testing/android/appurify_support:appurify_support_java", |
1580 ] | 1859 ] |
1581 if (defined(invoker.deps)) { | 1860 if (defined(invoker.deps)) { |
1582 deps += invoker.deps | 1861 deps += invoker.deps |
1583 } | 1862 } |
1584 datadeps = [ | 1863 data_deps = [ "//tools/android/md5sum" ] |
1585 "//tools/android/md5sum", | |
1586 ] | |
1587 if (host_os == "linux") { | 1864 if (host_os == "linux") { |
1588 datadeps += [ "//tools/android/forwarder2" ] | 1865 data_deps += [ "//tools/android/forwarder2" ] |
1589 } | 1866 } |
1590 if (defined(invoker.datadeps)) { | 1867 if (defined(invoker.data_deps)) { |
1591 datadeps += invoker.datadeps | 1868 data_deps += invoker.data_deps |
1592 } | 1869 } |
1593 } | 1870 } |
1594 } | 1871 } |
1595 | 1872 |
1596 # Generate .java files from .aidl files. | 1873 # Generate .java files from .aidl files. |
1597 # | 1874 # |
1598 # This target will store the .java files in a srcjar and should be included in | 1875 # This target will store the .java files in a srcjar and should be included in |
1599 # an android_library or android_apk's srcjar_deps. | 1876 # an android_library or android_apk's srcjar_deps. |
1600 # | 1877 # |
1601 # Variables | 1878 # Variables |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1680 # | 1957 # |
1681 # Variables | 1958 # Variables |
1682 # dist_dir: Directory for the exe and libraries. Everything in this directory | 1959 # dist_dir: Directory for the exe and libraries. Everything in this directory |
1683 # will be deleted before copying in the exe and libraries. | 1960 # will be deleted before copying in the exe and libraries. |
1684 # binary: Path to (stripped) executable. | 1961 # binary: Path to (stripped) executable. |
1685 # | 1962 # |
1686 # Example | 1963 # Example |
1687 # create_native_executable_dist("foo_dist") { | 1964 # create_native_executable_dist("foo_dist") { |
1688 # dist_dir = "$root_build_dir/foo_dist" | 1965 # dist_dir = "$root_build_dir/foo_dist" |
1689 # binary = "$root_build_dir/exe.stripped/foo" | 1966 # binary = "$root_build_dir/exe.stripped/foo" |
| 1967 # deps = [ ":the_thing_that_makes_foo" ] |
1690 # } | 1968 # } |
1691 template("create_native_executable_dist") { | 1969 template("create_native_executable_dist") { |
1692 set_sources_assignment_filter([]) | 1970 set_sources_assignment_filter([]) |
1693 if (defined(invoker.testonly)) { | 1971 if (defined(invoker.testonly)) { |
1694 testonly = invoker.testonly | 1972 testonly = invoker.testonly |
1695 } | 1973 } |
1696 | 1974 |
1697 dist_dir = invoker.dist_dir | 1975 dist_dir = invoker.dist_dir |
1698 binary = invoker.binary | 1976 binary = invoker.binary |
1699 final_deps = [] | |
1700 template_name = target_name | 1977 template_name = target_name |
1701 | 1978 |
1702 libraries_list = | 1979 libraries_list = |
1703 "${target_gen_dir}/${template_name}_library_dependencies.list" | 1980 "${target_gen_dir}/${template_name}_library_dependencies.list" |
1704 | 1981 |
1705 # TODO(gyp) | 1982 # TODO(gyp) |
1706 #'dependencies': [ | 1983 #'dependencies': [ |
1707 #'<(DEPTH)/build/android/setup.gyp:copy_system_libraries', | 1984 #'<(DEPTH)/build/android/setup.gyp:copy_system_libraries', |
1708 #], | 1985 #], |
1709 | 1986 |
| 1987 find_deps_target_name = "${template_name}__find_library_dependencies" |
| 1988 copy_target_name = "${template_name}__copy_libraries_and_exe" |
| 1989 |
1710 stripped_libraries_dir = "$root_build_dir/lib.stripped" | 1990 stripped_libraries_dir = "$root_build_dir/lib.stripped" |
1711 final_deps += [ ":${template_name}__find_library_dependencies" ] | 1991 action(find_deps_target_name) { |
1712 action("${template_name}__find_library_dependencies") { | 1992 visibility = [ ":$copy_target_name" ] |
| 1993 |
1713 script = "//build/android/gyp/write_ordered_libraries.py" | 1994 script = "//build/android/gyp/write_ordered_libraries.py" |
1714 depfile = "$target_gen_dir/$target_name.d" | 1995 depfile = "$target_gen_dir/$target_name.d" |
1715 inputs = [ | 1996 inputs = [ |
1716 binary, | 1997 binary, |
1717 android_readelf, | 1998 android_readelf, |
1718 ] | 1999 ] |
1719 outputs = [ | 2000 outputs = [ |
1720 depfile, | 2001 depfile, |
1721 libraries_list, | 2002 libraries_list, |
1722 ] | 2003 ] |
1723 rebased_binaries = rebase_path([ binary ], root_build_dir) | 2004 rebased_binaries = rebase_path([ binary ], root_build_dir) |
1724 args = [ | 2005 args = [ |
1725 "--depfile", | 2006 "--depfile", |
1726 rebase_path(depfile, root_build_dir), | 2007 rebase_path(depfile, root_build_dir), |
1727 "--input-libraries=$rebased_binaries", | 2008 "--input-libraries=$rebased_binaries", |
1728 "--libraries-dir", | 2009 "--libraries-dir", |
1729 rebase_path(stripped_libraries_dir, root_build_dir), | 2010 rebase_path(stripped_libraries_dir, root_build_dir), |
1730 "--output", | 2011 "--output", |
1731 rebase_path(libraries_list, root_build_dir), | 2012 rebase_path(libraries_list, root_build_dir), |
1732 "--readelf", | 2013 "--readelf", |
1733 rebase_path(android_readelf, root_build_dir), | 2014 rebase_path(android_readelf, root_build_dir), |
1734 ] | 2015 ] |
| 2016 if (defined(invoker.deps)) { |
| 2017 deps = invoker.deps |
| 2018 } |
1735 } | 2019 } |
1736 | 2020 |
1737 final_deps += [ ":${template_name}__copy_libraries_and_exe" ] | 2021 copy_ex(copy_target_name) { |
1738 copy_ex("${template_name}__copy_libraries_and_exe") { | 2022 visibility = [ ":$template_name" ] |
| 2023 |
1739 clear_dir = true | 2024 clear_dir = true |
1740 inputs = [ | 2025 inputs = [ |
1741 binary, | 2026 binary, |
1742 libraries_list, | 2027 libraries_list, |
1743 ] | 2028 ] |
1744 dest = dist_dir | 2029 dest = dist_dir |
1745 rebased_binaries_list = rebase_path([ binary ], root_build_dir) | 2030 rebased_binaries_list = rebase_path([ binary ], root_build_dir) |
1746 rebased_libraries_list = rebase_path(libraries_list, root_build_dir) | 2031 rebased_libraries_list = rebase_path(libraries_list, root_build_dir) |
1747 args = [ | 2032 args = [ |
1748 "--files=$rebased_binaries_list", | 2033 "--files=$rebased_binaries_list", |
1749 "--files=@FileArg($rebased_libraries_list:libraries)", | 2034 "--files=@FileArg($rebased_libraries_list:libraries)", |
1750 ] | 2035 ] |
| 2036 |
| 2037 deps = [ |
| 2038 ":$find_deps_target_name", |
| 2039 ] |
| 2040 if (defined(invoker.deps)) { |
| 2041 deps += invoker.deps |
| 2042 } |
1751 } | 2043 } |
1752 | 2044 |
1753 group(target_name) { | 2045 group(template_name) { |
1754 deps = final_deps | 2046 if (defined(invoker.visibility)) { |
| 2047 visibility = invoker.visibility |
| 2048 } |
| 2049 deps = [ |
| 2050 ":$copy_target_name", |
| 2051 ] |
1755 } | 2052 } |
1756 } | 2053 } |
1757 | 2054 |
1758 # Compile a protocol buffer to java. | 2055 # Compile a protocol buffer to java. |
1759 # | 2056 # |
1760 # This generates java files from protocol buffers and creates an Android library | 2057 # This generates java files from protocol buffers and creates an Android library |
1761 # containing the classes. | 2058 # containing the classes. |
1762 # | 2059 # |
1763 # Variables | 2060 # Variables |
1764 # sources: Paths to .proto files to compile. | 2061 # sources: Paths to .proto files to compile. |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1815 template("uiautomator_test") { | 2112 template("uiautomator_test") { |
1816 set_sources_assignment_filter([]) | 2113 set_sources_assignment_filter([]) |
1817 if (defined(invoker.testonly)) { | 2114 if (defined(invoker.testonly)) { |
1818 testonly = invoker.testonly | 2115 testonly = invoker.testonly |
1819 } | 2116 } |
1820 assert(target_name != "") | 2117 assert(target_name != "") |
1821 assert(invoker.deps != [] || true) | 2118 assert(invoker.deps != [] || true) |
1822 group(target_name) { | 2119 group(target_name) { |
1823 } | 2120 } |
1824 } | 2121 } |
OLD | NEW |