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("//base/android/linker/config.gni") | |
| 5 import("//build/config/android/config.gni") | 6 import("//build/config/android/config.gni") |
| 6 import("//build/config/android/internal_rules.gni") | 7 import("//build/config/android/internal_rules.gni") |
| 7 import("//tools/grit/grit_rule.gni") | 8 import("//tools/grit/grit_rule.gni") |
| 8 | 9 |
| 9 assert(is_android) | 10 assert(is_android) |
| 10 | 11 |
| 11 | 12 |
| 12 # Declare a jni target | 13 # Declare a jni target |
| 13 # | 14 # |
| 14 # 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. |
| (...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 619 | 620 |
| 620 if (defined(invoker.srcjar_deps)) { | 621 if (defined(invoker.srcjar_deps)) { |
| 621 srcjar_deps = invoker.srcjar_deps | 622 srcjar_deps = invoker.srcjar_deps |
| 622 } | 623 } |
| 623 if (defined(invoker.srcjars)) { | 624 if (defined(invoker.srcjars)) { |
| 624 srcjars = invoker.srcjars | 625 srcjars = invoker.srcjars |
| 625 } | 626 } |
| 626 } | 627 } |
| 627 } | 628 } |
| 628 | 629 |
| 630 template("java_library") { | |
|
rmcilroy
2014/10/21 21:21:03
I'm not sure how gn works, but this looks pretty s
cjhopman
2014/10/22 21:44:07
Yeah, it's similar. Almost all of the work is alre
| |
| 631 if (defined(invoker.testonly)) { testonly = invoker.testonly } | |
| 632 | |
| 633 assert(defined(invoker.java_files) || defined(invoker.DEPRECATED_java_in_dir) | |
| 634 || defined(invoker.srcjars)) | |
| 635 | |
| 636 _srcjar_deps = [] | |
| 637 if (defined(invoker.srcjar_deps)) { | |
| 638 _srcjar_deps = invoker.srcjar_deps | |
| 639 } | |
| 640 | |
| 641 _srcjars = [] | |
| 642 if (defined(invoker.srcjars)) { | |
| 643 _srcjars = invoker.srcjars | |
| 644 } | |
| 645 | |
| 646 _java_files = [] | |
| 647 if (defined(invoker.java_files)) { | |
| 648 _java_files = invoker.java_files | |
| 649 } else if (defined(invoker.DEPRECATED_java_in_dir)) { | |
| 650 _src_dir = invoker.DEPRECATED_java_in_dir + "/src" | |
| 651 _src_dir_exists = exec_script("//build/dir_exists.py", | |
| 652 [ rebase_path(_src_dir, root_build_dir) ], | |
| 653 "string") | |
| 654 assert(_src_dir_exists == "False", | |
| 655 "In GN, java_in_dir should be the fully specified java directory " + | |
| 656 "(i.e. including the trailing \"/src\")") | |
| 657 | |
| 658 _java_files_build_rel = exec_script( | |
| 659 "//build/android/gyp/find.py", | |
| 660 [ | |
| 661 "--pattern", | |
| 662 "*.java", | |
| 663 rebase_path(invoker.DEPRECATED_java_in_dir, root_build_dir) | |
| 664 ], | |
| 665 "list lines" | |
| 666 ) | |
| 667 _java_files = rebase_path(_java_files_build_rel, ".", root_build_dir) | |
| 668 } | |
| 669 assert(_java_files != [] || _srcjar_deps != [] || _srcjars != []) | |
| 670 | |
| 671 # TODO(cjhopman): Write a proper build config so that java library | |
| 672 # dependencies work correctly. | |
| 673 _build_config = "$target_gen_dir/$target_name.build_config" | |
| 674 write_file( | |
| 675 _build_config, | |
| 676 "{ \"javac\": { \"classpath\": [], \"srcjars\": [] } }") | |
| 677 | |
| 678 _jar_path = "$root_build_dir/lib.java/$target_name.jar" | |
| 679 if (defined(invoker.jar_path)) { | |
| 680 _jar_path = invoker.jar_path | |
| 681 } | |
| 682 | |
| 683 compile_java(target_name) { | |
| 684 build_config = _build_config | |
| 685 jar_path = _jar_path | |
| 686 java_files = _java_files | |
| 687 srcjar_deps = _srcjar_deps | |
| 688 srcjars = _srcjars | |
| 689 } | |
| 690 } | |
| 691 | |
| 629 | 692 |
| 630 # Declare an Android library target for a prebuilt jar | 693 # Declare an Android library target for a prebuilt jar |
| 631 # | 694 # |
| 632 # This target creates an Android library containing java code and Android | 695 # This target creates an Android library containing java code and Android |
| 633 # resources. | 696 # resources. |
| 634 # | 697 # |
| 635 # Variables | 698 # Variables |
| 636 # deps: Specifies the dependencies of this target. Java targets in this list | 699 # deps: Specifies the dependencies of this target. Java targets in this list |
| 637 # will be added to the javac classpath. Android resources in dependencies | 700 # will be added to the javac classpath. Android resources in dependencies |
| 638 # will be used when building this library. | 701 # will be used when building this library. |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 761 } else if (defined(invoker.apk_name)) { | 824 } else if (defined(invoker.apk_name)) { |
| 762 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk" | 825 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk" |
| 763 } | 826 } |
| 764 _dist_jar_path_list = process_file_template( | 827 _dist_jar_path_list = process_file_template( |
| 765 [ _final_apk_path ], | 828 [ _final_apk_path ], |
| 766 "$root_build_dir/test.lib.java/{{source_name_part}}.jar" | 829 "$root_build_dir/test.lib.java/{{source_name_part}}.jar" |
| 767 ) | 830 ) |
| 768 _dist_jar_path = _dist_jar_path_list[0] | 831 _dist_jar_path = _dist_jar_path_list[0] |
| 769 | 832 |
| 770 _native_libs = [] | 833 _native_libs = [] |
| 771 if (defined(invoker.native_libs)) { | |
| 772 _use_chromium_linker = false | |
| 773 if (defined(invoker.use_chromium_linker)) { | |
| 774 _use_chromium_linker = invoker.use_chromium_linker | |
| 775 } | |
| 776 | |
| 777 # TODO(GYP) add "|| profiling_full_stack_frames | |
| 778 # Only enable the chromium linker on regular builds, since the | |
| 779 # component build crashes on Android 4.4. See b/11379966 | |
| 780 if (is_component_build || cpu_arch == "arm64" || cpu_arch == "x64") { | |
| 781 _use_chromium_linker = false | |
| 782 } | |
| 783 | |
| 784 _native_libs = invoker.native_libs | |
| 785 _native_libs_dir = base_path + "/libs" | |
| 786 | |
| 787 if (_use_chromium_linker) { | |
| 788 _native_libs += [ | |
| 789 "$root_build_dir/lib.stripped/libchromium_android_linker.so" | |
| 790 ] | |
| 791 } | |
| 792 } | |
| 793 | 834 |
| 794 _keystore_path = android_default_keystore_path | 835 _keystore_path = android_default_keystore_path |
| 795 _keystore_name = android_default_keystore_name | 836 _keystore_name = android_default_keystore_name |
| 796 _keystore_password = android_default_keystore_password | 837 _keystore_password = android_default_keystore_password |
| 797 | 838 |
| 798 if (defined(invoker.keystore_path)) { | 839 if (defined(invoker.keystore_path)) { |
| 799 _keystore_path = invoker.keystore_path | 840 _keystore_path = invoker.keystore_path |
| 800 _keystore_name = invoker.keystore_name | 841 _keystore_name = invoker.keystore_name |
| 801 _keystore_password = invoker.keystore_password | 842 _keystore_password = invoker.keystore_password |
| 802 } | 843 } |
| 803 | 844 |
| 804 _srcjar_deps = [] | 845 _srcjar_deps = [] |
| 805 if (defined(invoker.srcjar_deps)) { | 846 if (defined(invoker.srcjar_deps)) { |
| 806 _srcjar_deps += invoker.srcjar_deps | 847 _srcjar_deps += invoker.srcjar_deps |
| 807 } | 848 } |
| 808 | 849 |
| 850 _load_library_from_apk = false | |
| 851 if (defined(invoker.load_library_from_apk)) { | |
| 852 _load_library_from_apk = invoker.load_library_from_apk | |
| 853 } | |
| 854 | |
| 855 if (defined(invoker.native_libs)) { | |
| 856 _use_chromium_linker = false | |
| 857 if (defined(invoker.use_chromium_linker)) { | |
| 858 _use_chromium_linker = (invoker.use_chromium_linker && | |
| 859 chromium_linker_supported) | |
| 860 } | |
| 861 | |
| 862 _native_libs = invoker.native_libs | |
| 863 _native_libs_dir = base_path + "/libs" | |
| 864 | |
| 865 if (_use_chromium_linker) { | |
| 866 _native_libs += [ | |
| 867 "$root_build_dir/lib.stripped/libchromium_android_linker.so" | |
| 868 ] | |
| 869 } | |
| 870 } | |
| 871 | |
| 809 _rebased_build_config = rebase_path(build_config, root_build_dir) | 872 _rebased_build_config = rebase_path(build_config, root_build_dir) |
| 810 | 873 |
| 811 write_build_config("${_template_name}__build_config") { | 874 write_build_config("${_template_name}__build_config") { |
| 812 type = "android_apk" | 875 type = "android_apk" |
| 813 dex_path = final_dex_path | 876 dex_path = final_dex_path |
| 814 resources_zip = resources_zip_path | 877 resources_zip = resources_zip_path |
| 815 | 878 |
| 816 if (defined(invoker.deps)) { | 879 if (defined(invoker.deps)) { |
| 817 deps = invoker.deps | 880 deps = invoker.deps |
| 818 } | 881 } |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 831 generate_constant_ids = true | 894 generate_constant_ids = true |
| 832 } | 895 } |
| 833 _srcjar_deps += [":${_template_name}__process_resources"] | 896 _srcjar_deps += [":${_template_name}__process_resources"] |
| 834 | 897 |
| 835 if (_native_libs != []) { | 898 if (_native_libs != []) { |
| 836 _enable_chromium_linker_tests = false | 899 _enable_chromium_linker_tests = false |
| 837 if (defined(invoker.enable_chromium_linker_tests)) { | 900 if (defined(invoker.enable_chromium_linker_tests)) { |
| 838 _enable_chromium_linker_tests = invoker.enable_chromium_linker_tests | 901 _enable_chromium_linker_tests = invoker.enable_chromium_linker_tests |
| 839 } | 902 } |
| 840 | 903 |
| 841 _load_library_from_apk = false | |
| 842 _native_lib_version_name = "" | 904 _native_lib_version_name = "" |
| 843 | 905 |
| 844 java_cpp_template("${_template_name}__native_libraries_java") { | 906 java_cpp_template("${_template_name}__native_libraries_java") { |
| 845 package_name = "org/chromium/base/library_loader" | 907 package_name = "org/chromium/base/library_loader" |
| 846 sources = [ | 908 sources = [ |
| 847 "//base/android/java/templates/NativeLibraries.template", | 909 "//base/android/java/templates/NativeLibraries.template", |
| 848 ] | 910 ] |
| 849 inputs = [ | 911 inputs = [ |
| 850 build_config, | 912 build_config, |
| 851 ] | 913 ] |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 935 } | 997 } |
| 936 } | 998 } |
| 937 } | 999 } |
| 938 | 1000 |
| 939 final_deps += [":${_template_name}__create"] | 1001 final_deps += [":${_template_name}__create"] |
| 940 create_apk("${_template_name}__create") { | 1002 create_apk("${_template_name}__create") { |
| 941 apk_path = _final_apk_path | 1003 apk_path = _final_apk_path |
| 942 android_manifest = invoker.android_manifest | 1004 android_manifest = invoker.android_manifest |
| 943 resources_zip = all_resources_zip_path | 1005 resources_zip = all_resources_zip_path |
| 944 dex_path = final_dex_path | 1006 dex_path = final_dex_path |
| 1007 load_library_from_apk = _load_library_from_apk | |
| 945 | 1008 |
| 946 if (defined(invoker.asset_location)) { | 1009 if (defined(invoker.asset_location)) { |
| 947 asset_location = invoker.asset_location | 1010 asset_location = invoker.asset_location |
| 948 } | 1011 } |
| 949 | 1012 |
| 950 keystore_name = _keystore_name | 1013 keystore_name = _keystore_name |
| 951 keystore_path = _keystore_path | 1014 keystore_path = _keystore_path |
| 952 keystore_password = _keystore_password | 1015 keystore_password = _keystore_password |
| 953 | 1016 |
| 954 if (_native_libs != []) { | 1017 if (_native_libs != []) { |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1225 } | 1288 } |
| 1226 | 1289 |
| 1227 # TODO(GYP): implement this. | 1290 # TODO(GYP): implement this. |
| 1228 template("uiautomator_test") { | 1291 template("uiautomator_test") { |
| 1229 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 1292 if (defined(invoker.testonly)) { testonly = invoker.testonly } |
| 1230 assert(target_name != "") | 1293 assert(target_name != "") |
| 1231 assert(invoker.deps != [] || true) | 1294 assert(invoker.deps != [] || true) |
| 1232 group(target_name) { | 1295 group(target_name) { |
| 1233 } | 1296 } |
| 1234 } | 1297 } |
| OLD | NEW |