| 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 710 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 725 | 726 |
| 726 if (defined(invoker.srcjar_deps)) { | 727 if (defined(invoker.srcjar_deps)) { |
| 727 srcjar_deps = invoker.srcjar_deps | 728 srcjar_deps = invoker.srcjar_deps |
| 728 } | 729 } |
| 729 if (defined(invoker.srcjars)) { | 730 if (defined(invoker.srcjars)) { |
| 730 srcjars = invoker.srcjars | 731 srcjars = invoker.srcjars |
| 731 } | 732 } |
| 732 } | 733 } |
| 733 } | 734 } |
| 734 | 735 |
| 736 template("java_library") { |
| 737 if (defined(invoker.testonly)) { testonly = invoker.testonly } |
| 738 |
| 739 assert(defined(invoker.java_files) || defined(invoker.DEPRECATED_java_in_dir) |
| 740 || defined(invoker.srcjars)) |
| 741 |
| 742 _srcjar_deps = [] |
| 743 if (defined(invoker.srcjar_deps)) { |
| 744 _srcjar_deps = invoker.srcjar_deps |
| 745 } |
| 746 |
| 747 _srcjars = [] |
| 748 if (defined(invoker.srcjars)) { |
| 749 _srcjars = invoker.srcjars |
| 750 } |
| 751 |
| 752 _java_files = [] |
| 753 if (defined(invoker.java_files)) { |
| 754 _java_files = invoker.java_files |
| 755 } else if (defined(invoker.DEPRECATED_java_in_dir)) { |
| 756 _src_dir = invoker.DEPRECATED_java_in_dir + "/src" |
| 757 _src_dir_exists = exec_script("//build/dir_exists.py", |
| 758 [ rebase_path(_src_dir, root_build_dir) ], |
| 759 "string") |
| 760 assert(_src_dir_exists == "False", |
| 761 "In GN, java_in_dir should be the fully specified java directory " + |
| 762 "(i.e. including the trailing \"/src\")") |
| 763 |
| 764 _java_files_build_rel = exec_script( |
| 765 "//build/android/gyp/find.py", |
| 766 [ |
| 767 "--pattern", |
| 768 "*.java", |
| 769 rebase_path(invoker.DEPRECATED_java_in_dir, root_build_dir) |
| 770 ], |
| 771 "list lines" |
| 772 ) |
| 773 _java_files = rebase_path(_java_files_build_rel, ".", root_build_dir) |
| 774 } |
| 775 assert(_java_files != [] || _srcjar_deps != [] || _srcjars != []) |
| 776 |
| 777 # TODO(cjhopman): Write a proper build config so that java library |
| 778 # dependencies work correctly. |
| 779 _build_config = "$target_gen_dir/$target_name.build_config" |
| 780 write_file( |
| 781 _build_config, |
| 782 "{ \"javac\": { \"classpath\": [], \"srcjars\": [] } }") |
| 783 |
| 784 _jar_path = "$root_build_dir/lib.java/$target_name.jar" |
| 785 if (defined(invoker.jar_path)) { |
| 786 _jar_path = invoker.jar_path |
| 787 } |
| 788 |
| 789 compile_java(target_name) { |
| 790 build_config = _build_config |
| 791 jar_path = _jar_path |
| 792 java_files = _java_files |
| 793 srcjar_deps = _srcjar_deps |
| 794 srcjars = _srcjars |
| 795 } |
| 796 } |
| 797 |
| 735 | 798 |
| 736 # Declare an Android library target for a prebuilt jar | 799 # Declare an Android library target for a prebuilt jar |
| 737 # | 800 # |
| 738 # This target creates an Android library containing java code and Android | 801 # This target creates an Android library containing java code and Android |
| 739 # resources. | 802 # resources. |
| 740 # | 803 # |
| 741 # Variables | 804 # Variables |
| 742 # deps: Specifies the dependencies of this target. Java targets in this list | 805 # deps: Specifies the dependencies of this target. Java targets in this list |
| 743 # will be added to the javac classpath. Android resources in dependencies | 806 # will be added to the javac classpath. Android resources in dependencies |
| 744 # will be used when building this library. | 807 # will be used when building this library. |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 868 } else if (defined(invoker.apk_name)) { | 931 } else if (defined(invoker.apk_name)) { |
| 869 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk" | 932 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk" |
| 870 } | 933 } |
| 871 _dist_jar_path_list = process_file_template( | 934 _dist_jar_path_list = process_file_template( |
| 872 [ _final_apk_path ], | 935 [ _final_apk_path ], |
| 873 "$root_build_dir/test.lib.java/{{source_name_part}}.jar" | 936 "$root_build_dir/test.lib.java/{{source_name_part}}.jar" |
| 874 ) | 937 ) |
| 875 _dist_jar_path = _dist_jar_path_list[0] | 938 _dist_jar_path = _dist_jar_path_list[0] |
| 876 | 939 |
| 877 _native_libs = [] | 940 _native_libs = [] |
| 878 if (defined(invoker.native_libs)) { | |
| 879 _use_chromium_linker = false | |
| 880 if (defined(invoker.use_chromium_linker)) { | |
| 881 _use_chromium_linker = invoker.use_chromium_linker | |
| 882 } | |
| 883 | |
| 884 # TODO(GYP) add "|| profiling_full_stack_frames | |
| 885 # Only enable the chromium linker on regular builds, since the | |
| 886 # component build crashes on Android 4.4. See b/11379966 | |
| 887 if (is_component_build || cpu_arch == "arm64" || cpu_arch == "x64") { | |
| 888 _use_chromium_linker = false | |
| 889 } | |
| 890 | |
| 891 _native_libs = invoker.native_libs | |
| 892 _native_libs_dir = base_path + "/libs" | |
| 893 | |
| 894 if (_use_chromium_linker) { | |
| 895 _native_libs += [ | |
| 896 "$root_build_dir/lib.stripped/libchromium_android_linker.so" | |
| 897 ] | |
| 898 } | |
| 899 } | |
| 900 | 941 |
| 901 _keystore_path = android_default_keystore_path | 942 _keystore_path = android_default_keystore_path |
| 902 _keystore_name = android_default_keystore_name | 943 _keystore_name = android_default_keystore_name |
| 903 _keystore_password = android_default_keystore_password | 944 _keystore_password = android_default_keystore_password |
| 904 | 945 |
| 905 if (defined(invoker.keystore_path)) { | 946 if (defined(invoker.keystore_path)) { |
| 906 _keystore_path = invoker.keystore_path | 947 _keystore_path = invoker.keystore_path |
| 907 _keystore_name = invoker.keystore_name | 948 _keystore_name = invoker.keystore_name |
| 908 _keystore_password = invoker.keystore_password | 949 _keystore_password = invoker.keystore_password |
| 909 } | 950 } |
| 910 | 951 |
| 911 _srcjar_deps = [] | 952 _srcjar_deps = [] |
| 912 if (defined(invoker.srcjar_deps)) { | 953 if (defined(invoker.srcjar_deps)) { |
| 913 _srcjar_deps += invoker.srcjar_deps | 954 _srcjar_deps += invoker.srcjar_deps |
| 914 } | 955 } |
| 915 | 956 |
| 957 _load_library_from_apk = false |
| 958 if (defined(invoker.load_library_from_apk)) { |
| 959 _load_library_from_apk = invoker.load_library_from_apk |
| 960 } |
| 961 |
| 962 if (defined(invoker.native_libs)) { |
| 963 _use_chromium_linker = false |
| 964 if (defined(invoker.use_chromium_linker)) { |
| 965 _use_chromium_linker = (invoker.use_chromium_linker && |
| 966 chromium_linker_supported) |
| 967 } |
| 968 |
| 969 _native_libs = invoker.native_libs |
| 970 _native_libs_dir = base_path + "/libs" |
| 971 |
| 972 if (_use_chromium_linker) { |
| 973 _native_libs += [ |
| 974 "$root_build_dir/lib.stripped/libchromium_android_linker.so" |
| 975 ] |
| 976 } |
| 977 } |
| 978 |
| 916 _rebased_build_config = rebase_path(build_config, root_build_dir) | 979 _rebased_build_config = rebase_path(build_config, root_build_dir) |
| 917 | 980 |
| 918 write_build_config("${_template_name}__build_config") { | 981 write_build_config("${_template_name}__build_config") { |
| 919 type = "android_apk" | 982 type = "android_apk" |
| 920 dex_path = final_dex_path | 983 dex_path = final_dex_path |
| 921 resources_zip = resources_zip_path | 984 resources_zip = resources_zip_path |
| 922 | 985 |
| 923 if (defined(invoker.deps)) { | 986 if (defined(invoker.deps)) { |
| 924 deps = invoker.deps | 987 deps = invoker.deps |
| 925 } | 988 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 938 generate_constant_ids = true | 1001 generate_constant_ids = true |
| 939 } | 1002 } |
| 940 _srcjar_deps += [":${_template_name}__process_resources"] | 1003 _srcjar_deps += [":${_template_name}__process_resources"] |
| 941 | 1004 |
| 942 if (_native_libs != []) { | 1005 if (_native_libs != []) { |
| 943 _enable_chromium_linker_tests = false | 1006 _enable_chromium_linker_tests = false |
| 944 if (defined(invoker.enable_chromium_linker_tests)) { | 1007 if (defined(invoker.enable_chromium_linker_tests)) { |
| 945 _enable_chromium_linker_tests = invoker.enable_chromium_linker_tests | 1008 _enable_chromium_linker_tests = invoker.enable_chromium_linker_tests |
| 946 } | 1009 } |
| 947 | 1010 |
| 948 _load_library_from_apk = false | |
| 949 _native_lib_version_name = "" | 1011 _native_lib_version_name = "" |
| 950 | 1012 |
| 951 java_cpp_template("${_template_name}__native_libraries_java") { | 1013 java_cpp_template("${_template_name}__native_libraries_java") { |
| 952 package_name = "org/chromium/base/library_loader" | 1014 package_name = "org/chromium/base/library_loader" |
| 953 sources = [ | 1015 sources = [ |
| 954 "//base/android/java/templates/NativeLibraries.template", | 1016 "//base/android/java/templates/NativeLibraries.template", |
| 955 ] | 1017 ] |
| 956 inputs = [ | 1018 inputs = [ |
| 957 build_config, | 1019 build_config, |
| 958 ] | 1020 ] |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1042 } | 1104 } |
| 1043 } | 1105 } |
| 1044 } | 1106 } |
| 1045 | 1107 |
| 1046 final_deps += [":${_template_name}__create"] | 1108 final_deps += [":${_template_name}__create"] |
| 1047 create_apk("${_template_name}__create") { | 1109 create_apk("${_template_name}__create") { |
| 1048 apk_path = _final_apk_path | 1110 apk_path = _final_apk_path |
| 1049 android_manifest = invoker.android_manifest | 1111 android_manifest = invoker.android_manifest |
| 1050 resources_zip = all_resources_zip_path | 1112 resources_zip = all_resources_zip_path |
| 1051 dex_path = final_dex_path | 1113 dex_path = final_dex_path |
| 1114 load_library_from_apk = _load_library_from_apk |
| 1052 | 1115 |
| 1053 if (defined(invoker.asset_location)) { | 1116 if (defined(invoker.asset_location)) { |
| 1054 asset_location = invoker.asset_location | 1117 asset_location = invoker.asset_location |
| 1055 } | 1118 } |
| 1056 | 1119 |
| 1057 keystore_name = _keystore_name | 1120 keystore_name = _keystore_name |
| 1058 keystore_path = _keystore_path | 1121 keystore_path = _keystore_path |
| 1059 keystore_password = _keystore_password | 1122 keystore_password = _keystore_password |
| 1060 | 1123 |
| 1061 if (_native_libs != []) { | 1124 if (_native_libs != []) { |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1332 } | 1395 } |
| 1333 | 1396 |
| 1334 # TODO(GYP): implement this. | 1397 # TODO(GYP): implement this. |
| 1335 template("uiautomator_test") { | 1398 template("uiautomator_test") { |
| 1336 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 1399 if (defined(invoker.testonly)) { testonly = invoker.testonly } |
| 1337 assert(target_name != "") | 1400 assert(target_name != "") |
| 1338 assert(invoker.deps != [] || true) | 1401 assert(invoker.deps != [] || true) |
| 1339 group(target_name) { | 1402 group(target_name) { |
| 1340 } | 1403 } |
| 1341 } | 1404 } |
| OLD | NEW |