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 import("//build/config/android/internal_rules.gni") | 6 import("//build/config/android/internal_rules.gni") |
7 import("//tools/grit/grit_rule.gni") | 7 import("//tools/grit/grit_rule.gni") |
8 | 8 |
9 assert(is_android) | 9 assert(is_android) |
10 | 10 |
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 | 361 |
362 base_path = "$target_gen_dir/$target_name" | 362 base_path = "$target_gen_dir/$target_name" |
363 zip_path = base_path + ".resources.zip" | 363 zip_path = base_path + ".resources.zip" |
364 srcjar_path = base_path + ".srcjar" | 364 srcjar_path = base_path + ".srcjar" |
365 build_config = base_path + ".build_config" | 365 build_config = base_path + ".build_config" |
366 | 366 |
367 write_build_config("${target_name}__build_config") { | 367 write_build_config("${target_name}__build_config") { |
368 type = "android_resources" | 368 type = "android_resources" |
369 resources_zip = zip_path | 369 resources_zip = zip_path |
370 srcjar = srcjar_path | 370 srcjar = srcjar_path |
371 if (defined(invoker.deps)) { | 371 if (defined(invoker.deps)) { deps = invoker.deps } |
372 deps = invoker.deps | 372 if (defined(invoker.android_manifest)) { android_manifest = invoker.android_
manifest } |
373 } | 373 if (defined(invoker.custom_package)) { custom_package = invoker.custom_packa
ge } |
374 } | 374 } |
375 | 375 |
376 android_manifest = "//build/android/AndroidManifest.xml" | 376 android_manifest = "//build/android/AndroidManifest.xml" |
377 if (defined(invoker.android_manifest)) { | 377 if (defined(invoker.android_manifest)) { |
378 android_manifest = invoker.android_manifest | 378 android_manifest = invoker.android_manifest |
379 } | 379 } |
380 | 380 |
381 process_resources("${target_name}__process_resources") { | 381 process_resources("${target_name}__process_resources") { |
382 resource_dirs = invoker.resource_dirs | 382 resource_dirs = invoker.resource_dirs |
383 if (defined(invoker.custom_package)) { | 383 if (defined(invoker.custom_package)) { |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
668 # native_lib_path | 668 # native_lib_path |
669 # ] | 669 # ] |
670 # } | 670 # } |
671 template("android_apk") { | 671 template("android_apk") { |
672 assert(defined(invoker.final_apk_path) || defined(invoker.apk_name)) | 672 assert(defined(invoker.final_apk_path) || defined(invoker.apk_name)) |
673 gen_dir = "$target_gen_dir/$target_name" | 673 gen_dir = "$target_gen_dir/$target_name" |
674 base_path = "$gen_dir/$target_name" | 674 base_path = "$gen_dir/$target_name" |
675 build_config = "$base_path.build_config" | 675 build_config = "$base_path.build_config" |
676 resources_zip_path = "$base_path.resources.zip" | 676 resources_zip_path = "$base_path.resources.zip" |
677 all_resources_zip_path = "$base_path.resources.all.zip" | 677 all_resources_zip_path = "$base_path.resources.all.zip" |
678 resource_srcjar_path = "$base_path.resources.srcjar" | |
679 jar_path = "$base_path.jar" | 678 jar_path = "$base_path.jar" |
680 final_dex_path = "$gen_dir/classes.dex" | 679 final_dex_path = "$gen_dir/classes.dex" |
681 _template_name = target_name | 680 _template_name = target_name |
682 _final_apk_path = "" | 681 _final_apk_path = "" |
683 if (defined(invoker.final_apk_path)) { | 682 if (defined(invoker.final_apk_path)) { |
684 _final_apk_path = invoker.final_apk_path | 683 _final_apk_path = invoker.final_apk_path |
685 } else if (defined(invoker.apk_name)) { | 684 } else if (defined(invoker.apk_name)) { |
686 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk" | 685 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk" |
687 } | 686 } |
688 _dist_jar_path_list = process_file_template( | 687 _dist_jar_path_list = process_file_template( |
689 [ _final_apk_path ], | 688 [ _final_apk_path ], |
690 "$root_build_dir/test.lib.java/{{source_name_part}}.jar" | 689 "$root_build_dir/test.lib.java/{{source_name_part}}.jar" |
691 ) | 690 ) |
692 _dist_jar_path = _dist_jar_path_list[0] | 691 _dist_jar_path = _dist_jar_path_list[0] |
693 | 692 |
694 _native_libs = [] | 693 _native_libs = [] |
695 if (defined(invoker.native_libs)) { | 694 if (defined(invoker.native_libs)) { |
696 _native_libs = invoker.native_libs | 695 _native_libs = invoker.native_libs |
697 _native_libs_dir = base_path + "/libs" | 696 _native_libs_dir = base_path + "/libs" |
698 } | 697 } |
699 | 698 |
700 _has_java = ( | |
701 defined(invoker.java_files) | |
702 || defined(invoker.DEPRECATED_java_in_dir) | |
703 || _native_libs != [] | |
704 ) | |
705 | |
706 _keystore_path = android_default_keystore_path | 699 _keystore_path = android_default_keystore_path |
707 _keystore_name = android_default_keystore_name | 700 _keystore_name = android_default_keystore_name |
708 _keystore_password = android_default_keystore_password | 701 _keystore_password = android_default_keystore_password |
709 | 702 |
710 if (defined(invoker.keystore_path)) { | 703 if (defined(invoker.keystore_path)) { |
711 _keystore_path = invoker.keystore_path | 704 _keystore_path = invoker.keystore_path |
712 _keystore_name = invoker.keystore_name | 705 _keystore_name = invoker.keystore_name |
713 _keystore_password = invoker.keystore_password | 706 _keystore_password = invoker.keystore_password |
714 } | 707 } |
715 | 708 |
716 _srcjar_deps = [] | 709 _srcjar_deps = [] |
717 if (defined(invoker.srcjar_deps)) { | 710 if (defined(invoker.srcjar_deps)) { |
718 _srcjar_deps += invoker.srcjar_deps | 711 _srcjar_deps += invoker.srcjar_deps |
719 } | 712 } |
720 | 713 |
721 _rebased_build_config = rebase_path(build_config, root_build_dir) | 714 _rebased_build_config = rebase_path(build_config, root_build_dir) |
722 | 715 |
723 write_build_config("${_template_name}__build_config") { | 716 write_build_config("${_template_name}__build_config") { |
724 type = "android_apk" | 717 type = "android_apk" |
725 srcjar = resource_srcjar_path | |
726 dex_path = final_dex_path | 718 dex_path = final_dex_path |
727 resources_zip = resources_zip_path | 719 resources_zip = resources_zip_path |
728 | 720 |
729 if (defined(invoker.deps)) { | 721 if (defined(invoker.deps)) { |
730 deps = invoker.deps | 722 deps = invoker.deps |
731 } | 723 } |
732 if (defined(invoker.testonly)) { | 724 if (defined(invoker.testonly)) { |
733 testonly = invoker.testonly | 725 testonly = invoker.testonly |
734 } | 726 } |
735 | 727 |
736 native_libs = _native_libs | 728 native_libs = _native_libs |
737 } | 729 } |
738 | 730 |
739 final_deps = [] | 731 final_deps = [] |
740 | 732 |
741 final_deps += [":${_template_name}__process_resources"] | 733 final_deps += [":${_template_name}__process_resources"] |
742 process_resources("${_template_name}__process_resources") { | 734 process_resources("${_template_name}__process_resources") { |
| 735 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" |
743 android_manifest = invoker.android_manifest | 736 android_manifest = invoker.android_manifest |
744 | |
745 resource_dirs = ["//build/android/ant/empty/res"] | 737 resource_dirs = ["//build/android/ant/empty/res"] |
746 zip_path = resources_zip_path | 738 zip_path = resources_zip_path |
747 srcjar_path = resource_srcjar_path | |
748 | |
749 generate_constant_ids = true | 739 generate_constant_ids = true |
750 } | 740 } |
| 741 _srcjar_deps += [":${_template_name}__process_resources"] |
751 | 742 |
752 if (_native_libs != []) { | 743 if (_native_libs != []) { |
753 _use_chromium_linker = false | 744 _use_chromium_linker = false |
754 _enable_chromium_linker_tests = false | 745 _enable_chromium_linker_tests = false |
755 _load_library_from_apk = false | 746 _load_library_from_apk = false |
756 _native_lib_version_name = "" | 747 _native_lib_version_name = "" |
757 | 748 |
758 | 749 |
759 java_cpp_template("${_template_name}__native_libraries_java") { | 750 java_cpp_template("${_template_name}__native_libraries_java") { |
760 package_name = "org/chromium/base/library_loader" | 751 package_name = "org/chromium/base/library_loader" |
(...skipping 15 matching lines...) Expand all Loading... |
776 if (_load_library_from_apk) { | 767 if (_load_library_from_apk) { |
777 defines += ["ENABLE_CHROMIUM_LINKER_LIBRARY_IN_ZIP_FILE"] | 768 defines += ["ENABLE_CHROMIUM_LINKER_LIBRARY_IN_ZIP_FILE"] |
778 } | 769 } |
779 if (_enable_chromium_linker_tests) { | 770 if (_enable_chromium_linker_tests) { |
780 defines += ["ENABLE_CHROMIUM_LINKER_TESTS"] | 771 defines += ["ENABLE_CHROMIUM_LINKER_TESTS"] |
781 } | 772 } |
782 } | 773 } |
783 _srcjar_deps += [ ":${_template_name}__native_libraries_java" ] | 774 _srcjar_deps += [ ":${_template_name}__native_libraries_java" ] |
784 } | 775 } |
785 | 776 |
786 if (_has_java) { | 777 final_deps += [ ":${_template_name}__java" ] |
787 final_deps += [ ":${_template_name}__java" ] | 778 android_java_library("${_template_name}__java") { |
788 android_java_library("${_template_name}__java") { | 779 android_manifest = invoker.android_manifest |
789 android_manifest = invoker.android_manifest | 780 if (defined(invoker.java_files)) { |
790 if (defined(invoker.java_files)) { | 781 java_files = invoker.java_files |
791 java_files = invoker.java_files | 782 } else if (defined(invoker.DEPRECATED_java_in_dir)) { |
792 } else if (defined(invoker.DEPRECATED_java_in_dir)) { | 783 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir |
793 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir | 784 } else { |
794 } else { | 785 java_files = [] |
795 assert(_srcjar_deps != []) | |
796 java_files = [] | |
797 } | |
798 srcjar_deps = _srcjar_deps | |
799 dex_path = base_path + ".dex.jar" | |
800 } | 786 } |
801 } else { | 787 srcjar_deps = _srcjar_deps |
802 assert(_srcjar_deps == []) | 788 dex_path = base_path + ".dex.jar" |
803 } | 789 } |
804 | 790 |
805 if (_dist_jar_path != "") { | 791 if (_dist_jar_path != "") { |
806 # TODO(cjhopman): This is only ever needed to calculate the list of tests to | 792 # TODO(cjhopman): This is only ever needed to calculate the list of tests to |
807 # run. See build/android/pylib/instrumentation/test_jar.py. We should be | 793 # run. See build/android/pylib/instrumentation/test_jar.py. We should be |
808 # able to just do that calculation at build time instead. | 794 # able to just do that calculation at build time instead. |
809 action("${_template_name}__create_dist_jar") { | 795 action("${_template_name}__create_dist_jar") { |
810 script = "//build/android/gyp/create_dist_jar.py" | 796 script = "//build/android/gyp/create_dist_jar.py" |
811 depfile = "$target_gen_dir/$target_name.d" | 797 depfile = "$target_gen_dir/$target_name.d" |
812 inputs = [ build_config ] | 798 inputs = [ build_config ] |
813 outputs = [ | 799 outputs = [ |
814 depfile, | 800 depfile, |
815 _dist_jar_path, | 801 _dist_jar_path, |
816 ] | 802 ] |
817 args = [ | 803 args = [ |
818 "--depfile", rebase_path(depfile, root_build_dir), | 804 "--depfile", rebase_path(depfile, root_build_dir), |
819 "--output", rebase_path(_dist_jar_path, root_build_dir), | 805 "--output", rebase_path(_dist_jar_path, root_build_dir), |
820 "--inputs=@FileArg($_rebased_build_config:dist_jar:dependency_jars)", | 806 "--inputs=@FileArg($_rebased_build_config:dist_jar:dependency_jars)", |
821 ] | 807 ] |
822 if (_has_java) { | 808 inputs += [ jar_path ] |
823 inputs += [ jar_path ] | 809 _rebased_jar_path = rebase_path([ jar_path ], root_build_dir) |
824 _rebased_jar_path = rebase_path([ jar_path ], root_build_dir) | 810 args += [ |
825 args += [ | 811 "--inputs=$_rebased_jar_path", |
826 "--inputs=$_rebased_jar_path", | 812 ] |
827 ] | |
828 } | |
829 } | 813 } |
830 } | 814 } |
831 | 815 |
832 final_deps += [":${_template_name}__final_dex"] | 816 final_deps += [":${_template_name}__final_dex"] |
833 dex("${_template_name}__final_dex") { | 817 dex("${_template_name}__final_dex") { |
834 sources = [] | 818 deps = [ ":${_template_name}__java" ] |
835 if (_has_java) { | 819 sources = [ jar_path ] |
836 deps = [ ":${_template_name}__java" ] | |
837 sources += [ jar_path ] | |
838 } | |
839 inputs = [ build_config ] | 820 inputs = [ build_config ] |
840 output = final_dex_path | 821 output = final_dex_path |
841 dex_arg_key = "${_rebased_build_config}:apk_dex:dependency_dex_files" | 822 dex_arg_key = "${_rebased_build_config}:apk_dex:dependency_dex_files" |
842 args = [ "--inputs=@FileArg($dex_arg_key)" ] | 823 args = [ "--inputs=@FileArg($dex_arg_key)" ] |
843 } | 824 } |
844 | 825 |
845 if (_native_libs != []) { | 826 if (_native_libs != []) { |
846 copy_ex("${_template_name}__prepare_native") { | 827 copy_ex("${_template_name}__prepare_native") { |
847 clear_dir = true | 828 clear_dir = true |
848 inputs = [ | 829 inputs = [ |
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1082 args = [ | 1063 args = [ |
1083 "--files=$rebased_binaries_list", | 1064 "--files=$rebased_binaries_list", |
1084 "--files=@FileArg($rebased_libraries_list:libraries)", | 1065 "--files=@FileArg($rebased_libraries_list:libraries)", |
1085 ] | 1066 ] |
1086 } | 1067 } |
1087 | 1068 |
1088 group(target_name) { | 1069 group(target_name) { |
1089 deps = final_deps | 1070 deps = final_deps |
1090 } | 1071 } |
1091 } | 1072 } |
OLD | NEW |