Chromium Code Reviews| 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("//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 android_aapt_path = "$rebased_android_sdk_build_tools/aapt" |
| 17 | 17 |
| 18 android_configuration_name = "Release" | |
| 19 if (is_debug) { | |
| 20 android_configuration_name = "Debug" | |
| 21 } | |
| 22 | |
| 18 template("android_lint") { | 23 template("android_lint") { |
| 19 set_sources_assignment_filter([]) | 24 set_sources_assignment_filter([]) |
| 20 if (defined(invoker.testonly)) { | 25 if (defined(invoker.testonly)) { |
| 21 testonly = invoker.testonly | 26 testonly = invoker.testonly |
| 22 } | 27 } |
| 23 | 28 |
| 24 jar_path = invoker.jar_path | 29 jar_path = invoker.jar_path |
| 25 android_manifest = invoker.android_manifest | 30 android_manifest = invoker.android_manifest |
| 26 java_files = invoker.java_files | 31 java_files = invoker.java_files |
| 27 base_path = "$target_gen_dir/$target_name" | 32 base_path = "$target_gen_dir/$target_name" |
| (...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 497 if (defined(invoker.visibility)) { | 502 if (defined(invoker.visibility)) { |
| 498 visibility = invoker.visibility | 503 visibility = invoker.visibility |
| 499 } | 504 } |
| 500 public_deps = [ | 505 public_deps = [ |
| 501 ":${target_name}__jar_toc", | 506 ":${target_name}__jar_toc", |
| 502 ":$_output_jar_target", | 507 ":$_output_jar_target", |
| 503 ] | 508 ] |
| 504 } | 509 } |
| 505 } | 510 } |
| 506 | 511 |
| 512 template("package_apk") { | |
|
Dirk Pranke
2015/08/12 18:55:20
This should have comments describing what this rul
agrieve
2015/08/18 14:48:47
Done.
| |
| 513 action(target_name) { | |
| 514 if (defined(invoker.testonly)) { | |
| 515 testonly = invoker.testonly | |
| 516 } | |
| 517 script = "//build/android/gyp/ant.py" | |
| 518 _ant_script = "//build/android/ant/apk-package.xml" | |
| 519 | |
| 520 deps = invoker.deps | |
| 521 depfile = "$target_gen_dir/$target_name.d" | |
| 522 | |
| 523 inputs = [ | |
| 524 invoker.resource_packaged_apk_path, | |
| 525 _ant_script, | |
| 526 ] | |
| 527 if (defined(invoker.dex_path)) { | |
| 528 inputs += [ invoker.dex_path ] | |
| 529 } | |
| 530 | |
| 531 outputs = [ | |
| 532 depfile, | |
| 533 invoker.output_apk_path, | |
| 534 ] | |
| 535 | |
| 536 _rebased_emma_jar = "" | |
| 537 _rebased_resource_packaged_apk_path = | |
| 538 rebase_path(invoker.resource_packaged_apk_path, root_build_dir) | |
| 539 _rebased_packaged_apk_path = | |
| 540 rebase_path(invoker.output_apk_path, root_build_dir) | |
| 541 _rebased_native_libs_dir = | |
| 542 rebase_path(invoker.native_libs_dir, root_build_dir) | |
| 543 args = [ | |
| 544 "--depfile", | |
| 545 rebase_path(depfile, root_build_dir), | |
| 546 "--", | |
| 547 "-quiet", | |
| 548 "-DANDROID_SDK_ROOT=$rebased_android_sdk_root", | |
| 549 "-DANDROID_SDK_TOOLS=$rebased_android_sdk_build_tools", | |
| 550 "-DRESOURCE_PACKAGED_APK_NAME=$_rebased_resource_packaged_apk_path", | |
| 551 "-DCONFIGURATION_NAME=$android_configuration_name", | |
| 552 "-DNATIVE_LIBS_DIR=$_rebased_native_libs_dir", | |
| 553 "-DOUT_DIR=", | |
| 554 "-DUNSIGNED_APK_PATH=$_rebased_packaged_apk_path", | |
| 555 "-DEMMA_INSTRUMENT=0", | |
| 556 "-DEMMA_DEVICE_JAR=$_rebased_emma_jar", | |
| 557 "-Dbasedir=.", | |
| 558 "-buildfile", | |
| 559 rebase_path(_ant_script, root_build_dir), | |
| 560 ] | |
| 561 if (defined(invoker.dex_path)) { | |
| 562 _rebased_dex_path = rebase_path(invoker.dex_path, root_build_dir) | |
| 563 args += [ | |
| 564 "-DDEX_FILE_PATH=$_rebased_dex_path", | |
| 565 "-DHAS_CODE=true", | |
| 566 ] | |
| 567 } else { | |
| 568 args += [ "-DHAS_CODE=false" ] | |
| 569 } | |
| 570 } | |
| 571 } | |
| 572 | |
| 507 template("finalize_apk") { | 573 template("finalize_apk") { |
| 508 action(target_name) { | 574 action(target_name) { |
| 509 script = "//build/android/gyp/finalize_apk.py" | 575 script = "//build/android/gyp/finalize_apk.py" |
| 510 depfile = "$target_gen_dir/$target_name.d" | 576 depfile = "$target_gen_dir/$target_name.d" |
| 511 | 577 |
| 512 if (defined(invoker.testonly)) { | 578 if (defined(invoker.testonly)) { |
| 513 testonly = invoker.testonly | 579 testonly = invoker.testonly |
| 514 } | 580 } |
| 515 | 581 |
| 516 sources = [ | 582 sources = [ |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 566 # zipaligns the apk. | 632 # zipaligns the apk. |
| 567 template("create_apk") { | 633 template("create_apk") { |
| 568 set_sources_assignment_filter([]) | 634 set_sources_assignment_filter([]) |
| 569 if (defined(invoker.testonly)) { | 635 if (defined(invoker.testonly)) { |
| 570 testonly = invoker.testonly | 636 testonly = invoker.testonly |
| 571 } | 637 } |
| 572 | 638 |
| 573 _android_manifest = invoker.android_manifest | 639 _android_manifest = invoker.android_manifest |
| 574 _base_path = invoker.base_path | 640 _base_path = invoker.base_path |
| 575 _final_apk_path = invoker.apk_path | 641 _final_apk_path = invoker.apk_path |
| 642 _managed_final_apk_path_helper = | |
| 643 process_file_template([ _final_apk_path ], | |
| 644 "{{source_dir}}/{{source_name_part}}_managed.apk") | |
| 645 _managed_final_apk_path = _managed_final_apk_path_helper[0] | |
| 576 | 646 |
| 577 if (defined(invoker.resources_zip)) { | 647 if (defined(invoker.resources_zip)) { |
| 578 _resources_zip = invoker.resources_zip | 648 _resources_zip = invoker.resources_zip |
| 579 } | 649 } |
| 580 if (defined(invoker.dex_path)) { | 650 if (defined(invoker.dex_path)) { |
| 581 _dex_path = invoker.dex_path | 651 _dex_path = invoker.dex_path |
| 582 } | 652 } |
| 583 _load_library_from_apk = invoker.load_library_from_apk | 653 _load_library_from_apk = invoker.load_library_from_apk |
| 584 | 654 |
| 585 _package_deps = [] | 655 _package_deps = [] |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 596 _asset_location = invoker.asset_location | 666 _asset_location = invoker.asset_location |
| 597 } | 667 } |
| 598 | 668 |
| 599 _version_code = invoker.version_code | 669 _version_code = invoker.version_code |
| 600 _version_name = invoker.version_name | 670 _version_name = invoker.version_name |
| 601 | 671 |
| 602 _base_apk_path = _base_path + ".apk_intermediates" | 672 _base_apk_path = _base_path + ".apk_intermediates" |
| 603 | 673 |
| 604 _resource_packaged_apk_path = _base_apk_path + ".ap_" | 674 _resource_packaged_apk_path = _base_apk_path + ".ap_" |
| 605 _packaged_apk_path = _base_apk_path + ".unfinished.apk" | 675 _packaged_apk_path = _base_apk_path + ".unfinished.apk" |
| 676 _managed_packaged_apk_path = _base_apk_path + "_managed.unfinished.apk" | |
| 606 _shared_resources = | 677 _shared_resources = |
| 607 defined(invoker.shared_resources) && invoker.shared_resources | 678 defined(invoker.shared_resources) && invoker.shared_resources |
| 608 | 679 |
| 609 _configuration_name = "Release" | |
| 610 if (is_debug) { | |
| 611 _configuration_name = "Debug" | |
| 612 } | |
| 613 | |
| 614 _keystore_path = invoker.keystore_path | 680 _keystore_path = invoker.keystore_path |
| 615 _keystore_name = invoker.keystore_name | 681 _keystore_name = invoker.keystore_name |
| 616 _keystore_password = invoker.keystore_password | 682 _keystore_password = invoker.keystore_password |
| 617 | 683 |
| 618 _split_densities = [] | 684 _split_densities = [] |
| 619 if (defined(invoker.create_density_splits) && invoker.create_density_splits) { | 685 if (defined(invoker.create_density_splits) && invoker.create_density_splits) { |
| 620 _split_densities = [ | 686 _split_densities = [ |
| 621 "hdpi", | 687 "hdpi", |
| 622 "xhdpi", | 688 "xhdpi", |
| 623 "xxhdpi", | 689 "xxhdpi", |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 648 _resource_packaged_apk_path, | 714 _resource_packaged_apk_path, |
| 649 ] | 715 ] |
| 650 | 716 |
| 651 args = [ | 717 args = [ |
| 652 "--depfile", | 718 "--depfile", |
| 653 rebase_path(depfile, root_build_dir), | 719 rebase_path(depfile, root_build_dir), |
| 654 "--android-sdk", | 720 "--android-sdk", |
| 655 rebased_android_sdk, | 721 rebased_android_sdk, |
| 656 "--aapt-path", | 722 "--aapt-path", |
| 657 android_aapt_path, | 723 android_aapt_path, |
| 658 "--configuration-name=$_configuration_name", | 724 "--configuration-name=$android_configuration_name", |
| 659 "--android-manifest", | 725 "--android-manifest", |
| 660 rebase_path(_android_manifest, root_build_dir), | 726 rebase_path(_android_manifest, root_build_dir), |
| 661 "--version-code", | 727 "--version-code", |
| 662 _version_code, | 728 _version_code, |
| 663 "--version-name", | 729 "--version-name", |
| 664 _version_name, | 730 _version_name, |
| 665 "--apk-path", | 731 "--apk-path", |
| 666 rebase_path(_resource_packaged_apk_path, root_build_dir), | 732 rebase_path(_resource_packaged_apk_path, root_build_dir), |
| 667 ] | 733 ] |
| 668 | 734 |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 695 } | 761 } |
| 696 if (defined(invoker.extensions_to_not_compress)) { | 762 if (defined(invoker.extensions_to_not_compress)) { |
| 697 args += [ | 763 args += [ |
| 698 "--no-compress", | 764 "--no-compress", |
| 699 invoker.extensions_to_not_compress, | 765 invoker.extensions_to_not_compress, |
| 700 ] | 766 ] |
| 701 } | 767 } |
| 702 } | 768 } |
| 703 | 769 |
| 704 package_target = "${target_name}__package" | 770 package_target = "${target_name}__package" |
| 705 action(package_target) { | 771 package_apk(package_target) { |
| 706 script = "//build/android/gyp/ant.py" | |
| 707 _ant_script = "//build/android/ant/apk-package.xml" | |
| 708 | |
| 709 deps = [ | 772 deps = [ |
| 710 ":${_package_resources_target_name}", | 773 ":${_package_resources_target_name}", |
| 711 ] | 774 ] |
| 712 if (defined(invoker.deps)) { | 775 if (defined(invoker.deps)) { |
| 713 deps += invoker.deps | 776 deps += invoker.deps |
| 714 } | 777 } |
| 715 depfile = "$target_gen_dir/$target_name.d" | 778 if (defined(_dex_path)) { |
| 779 dex_path = _dex_path | |
| 780 } | |
| 781 native_libs_dir = _native_libs_dir | |
| 782 output_apk_path = _packaged_apk_path | |
| 783 resource_packaged_apk_path = _resource_packaged_apk_path | |
| 784 } | |
| 716 | 785 |
| 717 inputs = [ | 786 _managed_package_target = "${target_name}_managed__package" |
| 718 _resource_packaged_apk_path, | 787 package_apk(_managed_package_target) { |
| 719 _ant_script, | 788 deps = [ |
| 789 ":${_package_resources_target_name}", | |
| 720 ] | 790 ] |
| 721 if (defined(_dex_path)) { | 791 if (defined(invoker.deps)) { |
| 722 inputs += [ _dex_path ] | 792 deps += invoker.deps |
| 723 } | 793 } |
| 724 | 794 |
| 725 outputs = [ | 795 # TODO(agrieve): Multidex |
| 726 depfile, | 796 if (defined(_dex_path)) { |
| 727 _packaged_apk_path, | 797 dex_path = _dex_path |
| 728 ] | 798 } |
| 729 | 799 |
| 730 _rebased_emma_jar = "" | 800 # TODO(agrieve): Add a placeholder .so for http://crbug.com/384638 |
| 731 _rebased_resource_packaged_apk_path = | 801 native_libs_dir = "//build/android/empty/res" |
| 732 rebase_path(_resource_packaged_apk_path, root_build_dir) | 802 output_apk_path = _managed_packaged_apk_path |
| 733 _rebased_packaged_apk_path = rebase_path(_packaged_apk_path, root_build_dir) | 803 resource_packaged_apk_path = _resource_packaged_apk_path |
| 734 _rebased_native_libs_dir = rebase_path(_native_libs_dir, root_build_dir) | |
| 735 args = [ | |
| 736 "--depfile", | |
| 737 rebase_path(depfile, root_build_dir), | |
| 738 "--", | |
| 739 "-quiet", | |
| 740 "-DANDROID_SDK_ROOT=$rebased_android_sdk_root", | |
| 741 "-DANDROID_SDK_TOOLS=$rebased_android_sdk_build_tools", | |
| 742 "-DRESOURCE_PACKAGED_APK_NAME=$_rebased_resource_packaged_apk_path", | |
| 743 "-DCONFIGURATION_NAME=$_configuration_name", | |
| 744 "-DNATIVE_LIBS_DIR=$_rebased_native_libs_dir", | |
| 745 "-DOUT_DIR=", | |
| 746 "-DUNSIGNED_APK_PATH=$_rebased_packaged_apk_path", | |
| 747 "-DEMMA_INSTRUMENT=0", | |
| 748 "-DEMMA_DEVICE_JAR=$_rebased_emma_jar", | |
| 749 "-Dbasedir=.", | |
| 750 "-buildfile", | |
| 751 rebase_path(_ant_script, root_build_dir), | |
| 752 ] | |
| 753 if (defined(_dex_path)) { | |
| 754 _rebased_dex_path = rebase_path(_dex_path, root_build_dir) | |
| 755 args += [ | |
| 756 "-DDEX_FILE_PATH=$_rebased_dex_path", | |
| 757 "-DHAS_CODE=true", | |
| 758 ] | |
| 759 } else { | |
| 760 args += [ "-DHAS_CODE=false" ] | |
| 761 } | |
| 762 } | 804 } |
| 763 | 805 |
| 764 _finalize_apk_rule_name = "${target_name}__finalize" | 806 _finalize_apk_rule_name = "${target_name}__finalize" |
| 765 finalize_apk(_finalize_apk_rule_name) { | 807 finalize_apk(_finalize_apk_rule_name) { |
| 766 input_apk_path = _packaged_apk_path | 808 input_apk_path = _packaged_apk_path |
| 767 output_apk_path = _final_apk_path | 809 output_apk_path = _final_apk_path |
| 768 keystore_path = _keystore_path | 810 keystore_path = _keystore_path |
| 769 keystore_name = _keystore_name | 811 keystore_name = _keystore_name |
| 770 keystore_password = _keystore_password | 812 keystore_password = _keystore_password |
| 771 rezip_apk = _load_library_from_apk | 813 rezip_apk = _load_library_from_apk |
| 772 | 814 |
| 773 public_deps = [ | 815 public_deps = [ |
| 774 # Generator of the _packaged_apk_path this target takes as input. | 816 # Generator of the _packaged_apk_path this target takes as input. |
| 775 ":$package_target", | 817 ":$package_target", |
| 776 ] | 818 ] |
| 777 } | 819 } |
| 778 | 820 |
| 779 _final_deps = [ ":${_finalize_apk_rule_name}" ] | 821 _managed_finalize_apk_rule_name = "${target_name}_managed__finalize" |
| 822 finalize_apk(_managed_finalize_apk_rule_name) { | |
| 823 input_apk_path = _managed_packaged_apk_path | |
| 824 output_apk_path = _managed_final_apk_path | |
| 825 keystore_path = _keystore_path | |
| 826 keystore_name = _keystore_name | |
| 827 keystore_password = _keystore_password | |
| 828 | |
| 829 public_deps = [ | |
| 830 ":$_managed_package_target", | |
| 831 ] | |
| 832 } | |
| 833 | |
| 834 _split_deps = [] | |
| 780 | 835 |
| 781 template("finalize_split") { | 836 template("finalize_split") { |
| 782 finalize_apk(target_name) { | 837 finalize_apk(target_name) { |
| 783 _config = invoker.split_config | 838 _config = invoker.split_config |
| 784 _type = invoker.split_type | 839 _type = invoker.split_type |
| 785 input_apk_path = "${_resource_packaged_apk_path}_${_config}" | 840 input_apk_path = "${_resource_packaged_apk_path}_${_config}" |
| 786 _output_paths = process_file_template( | 841 _output_paths = process_file_template( |
| 787 [ _final_apk_path ], | 842 [ _final_apk_path ], |
| 788 "{{source_dir}}/{{source_name_part}}-${_type}-${_config}.apk") | 843 "{{source_dir}}/{{source_name_part}}-${_type}-${_config}.apk") |
| 789 output_apk_path = _output_paths[0] | 844 output_apk_path = _output_paths[0] |
| 790 keystore_path = _keystore_path | 845 keystore_path = _keystore_path |
| 791 keystore_name = _keystore_name | 846 keystore_name = _keystore_name |
| 792 keystore_password = _keystore_password | 847 keystore_password = _keystore_password |
| 793 deps = [ | 848 deps = [ |
| 794 ":${_package_resources_target_name}", | 849 ":${_package_resources_target_name}", |
| 795 ] | 850 ] |
| 796 } | 851 } |
| 797 } | 852 } |
| 798 | 853 |
| 799 foreach(_split, _split_densities) { | 854 foreach(_split, _split_densities) { |
| 800 _split_rule = "${target_name}__finalize_${_split}_split" | 855 _split_rule = "${target_name}__finalize_${_split}_split" |
| 801 finalize_split(_split_rule) { | 856 finalize_split(_split_rule) { |
| 802 split_type = "density" | 857 split_type = "density" |
| 803 split_config = _split | 858 split_config = _split |
| 804 } | 859 } |
| 805 _final_deps += [ ":$_split_rule" ] | 860 _split_deps += [ ":$_split_rule" ] |
| 806 } | 861 } |
| 807 foreach(_split, _split_languages) { | 862 foreach(_split, _split_languages) { |
| 808 _split_rule = "${target_name}__finalize_${_split}_split" | 863 _split_rule = "${target_name}__finalize_${_split}_split" |
| 809 finalize_split(_split_rule) { | 864 finalize_split(_split_rule) { |
| 810 split_type = "lang" | 865 split_type = "lang" |
| 811 split_config = _split | 866 split_config = _split |
| 812 } | 867 } |
| 813 _final_deps += [ ":$_split_rule" ] | 868 _split_deps += [ ":$_split_rule" ] |
| 814 } | 869 } |
| 815 | 870 |
| 816 group(target_name) { | 871 group(target_name) { |
| 817 public_deps = _final_deps | 872 public_deps = [ ":${_finalize_apk_rule_name}" ] + _split_deps |
| 873 } | |
| 874 group("${target_name}_managed") { | |
| 875 public_deps = [ ":${_managed_finalize_apk_rule_name}" ] + _split_deps | |
| 818 } | 876 } |
| 819 } | 877 } |
| 820 | 878 |
| 821 template("java_prebuilt_impl") { | 879 template("java_prebuilt_impl") { |
| 822 set_sources_assignment_filter([]) | 880 set_sources_assignment_filter([]) |
| 823 if (defined(invoker.testonly)) { | 881 if (defined(invoker.testonly)) { |
| 824 testonly = invoker.testonly | 882 testonly = invoker.testonly |
| 825 } | 883 } |
| 826 _supports_android = | 884 _supports_android = |
| 827 defined(invoker.supports_android) && invoker.supports_android | 885 defined(invoker.supports_android) && invoker.supports_android |
| (...skipping 753 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1581 ] | 1639 ] |
| 1582 args = [ | 1640 args = [ |
| 1583 "--depfile", | 1641 "--depfile", |
| 1584 rebase_path(depfile, root_build_dir), | 1642 rebase_path(depfile, root_build_dir), |
| 1585 "--script-output-path", | 1643 "--script-output-path", |
| 1586 rebase_path(generated_script, root_build_dir), | 1644 rebase_path(generated_script, root_build_dir), |
| 1587 ] | 1645 ] |
| 1588 args += test_runner_args | 1646 args += test_runner_args |
| 1589 } | 1647 } |
| 1590 } | 1648 } |
| OLD | NEW |