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 16 matching lines...) Expand all Loading... |
27 # "android/java/src/org/chromium/foo/FooUtil.java", | 27 # "android/java/src/org/chromium/foo/FooUtil.java", |
28 # ] | 28 # ] |
29 # jni_package = "foo" | 29 # jni_package = "foo" |
30 # } | 30 # } |
31 template("generate_jni") { | 31 template("generate_jni") { |
32 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 32 if (defined(invoker.testonly)) { testonly = invoker.testonly } |
33 | 33 |
34 assert(defined(invoker.sources)) | 34 assert(defined(invoker.sources)) |
35 assert(defined(invoker.jni_package)) | 35 assert(defined(invoker.jni_package)) |
36 jni_package = invoker.jni_package | 36 jni_package = invoker.jni_package |
37 base_output_dir = "${root_gen_dir}/${target_name}/${jni_package}" | 37 base_output_dir = "${target_gen_dir}/${target_name}" |
38 jni_output_dir = "${base_output_dir}/jni" | 38 package_output_dir = "${base_output_dir}/${jni_package}" |
| 39 jni_output_dir = "${package_output_dir}/jni" |
39 | 40 |
40 jni_generator_include = "//base/android/jni_generator/jni_generator_helper.h" | 41 jni_generator_include = "//base/android/jni_generator/jni_generator_helper.h" |
41 | 42 |
42 foreach_target_name = "${target_name}__jni_gen" | 43 foreach_target_name = "${target_name}__jni_gen" |
43 action_foreach(foreach_target_name) { | 44 action_foreach(foreach_target_name) { |
44 script = "//base/android/jni_generator/jni_generator.py" | 45 script = "//base/android/jni_generator/jni_generator.py" |
45 depfile = "$target_gen_dir/$target_name.{{source_name_part}}.d" | 46 depfile = "$target_gen_dir/$target_name.{{source_name_part}}.d" |
46 sources = invoker.sources | 47 sources = invoker.sources |
47 inputs = [ jni_generator_include ] | 48 inputs = [ jni_generator_include ] |
48 outputs = [ | 49 outputs = [ |
(...skipping 10 matching lines...) Expand all Loading... |
59 "--includes", rebase_path(jni_generator_include, "//"), | 60 "--includes", rebase_path(jni_generator_include, "//"), |
60 ] | 61 ] |
61 if (defined(invoker.jni_generator_jarjar_file)) { | 62 if (defined(invoker.jni_generator_jarjar_file)) { |
62 args += [ | 63 args += [ |
63 "--jarjar", rebase_path(jni_generator_jarjar_file, root_build_dir), | 64 "--jarjar", rebase_path(jni_generator_jarjar_file, root_build_dir), |
64 ] | 65 ] |
65 } | 66 } |
66 } | 67 } |
67 | 68 |
68 config("jni_includes_${target_name}") { | 69 config("jni_includes_${target_name}") { |
69 include_dirs = [ base_output_dir ] | 70 # TODO(cjhopman): #includes should probably all be relative to |
| 71 # base_output_dir. Remove that from this config once the includes are |
| 72 # updated. |
| 73 include_dirs = [ |
| 74 base_output_dir, |
| 75 package_output_dir, |
| 76 ] |
70 } | 77 } |
71 | 78 |
72 group(target_name) { | 79 group(target_name) { |
73 deps = [ ":$foreach_target_name" ] | 80 deps = [ ":$foreach_target_name" ] |
74 direct_dependent_configs = [ ":jni_includes_${target_name}" ] | 81 direct_dependent_configs = [ ":jni_includes_${target_name}" ] |
75 | 82 |
76 if (defined(invoker.deps)) { | 83 if (defined(invoker.deps)) { |
77 deps += invoker.deps | 84 deps += invoker.deps |
78 } | 85 } |
79 if (defined(invoker.forward_dependent_configs_from)) { | 86 if (defined(invoker.forward_dependent_configs_from)) { |
80 forward_dependent_configs_from = invoker.forward_dependent_configs_from | 87 forward_dependent_configs_from = invoker.forward_dependent_configs_from |
81 } | 88 } |
| 89 |
| 90 if (defined(invoker.visibility)) { visibility = invoker.visibility } |
82 } | 91 } |
83 } | 92 } |
84 | 93 |
85 | 94 |
86 # Declare a jni target for a prebuilt jar | 95 # Declare a jni target for a prebuilt jar |
87 # | 96 # |
88 # This target generates the native jni bindings for a set of classes in a .jar. | 97 # This target generates the native jni bindings for a set of classes in a .jar. |
89 # | 98 # |
90 # See base/android/jni_generator/jni_generator.py for more info about the | 99 # See base/android/jni_generator/jni_generator.py for more info about the |
91 # format of generating JNI bindings. | 100 # format of generating JNI bindings. |
(...skipping 877 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
969 | 978 |
970 android_apk(target_name) { | 979 android_apk(target_name) { |
971 _apk_name = test_suite_name | 980 _apk_name = test_suite_name |
972 final_apk_path = "$root_build_dir/${_apk_name}_apk/${_apk_name}-debug.apk" | 981 final_apk_path = "$root_build_dir/${_apk_name}_apk/${_apk_name}-debug.apk" |
973 java_files = [ | 982 java_files = [ |
974 "//testing/android/java/src/org/chromium/native_test/ChromeNativeTestActiv
ity.java" | 983 "//testing/android/java/src/org/chromium/native_test/ChromeNativeTestActiv
ity.java" |
975 ] | 984 ] |
976 android_manifest = "//testing/android/java/AndroidManifest.xml" | 985 android_manifest = "//testing/android/java/AndroidManifest.xml" |
977 unittests_outputs = [ unittests_binary ] | 986 unittests_outputs = [ unittests_binary ] |
978 native_libs = [unittests_outputs[0]] | 987 native_libs = [unittests_outputs[0]] |
| 988 deps = [ "//base:base_java" ] |
979 if (defined(invoker.deps)) { | 989 if (defined(invoker.deps)) { |
980 deps = invoker.deps | 990 deps += invoker.deps |
981 } | 991 } |
982 datadeps = [ | 992 datadeps = [ |
983 "//tools/android/md5sum", | 993 "//tools/android/md5sum", |
984 ] | 994 ] |
985 } | 995 } |
986 } | 996 } |
987 | 997 |
988 # Generate .java files from .aidl files. | 998 # Generate .java files from .aidl files. |
989 # | 999 # |
990 # This target will store the .java files in a srcjar and should be included in | 1000 # This target will store the .java files in a srcjar and should be included in |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1180 } | 1190 } |
1181 | 1191 |
1182 android_library(target_name) { | 1192 android_library(target_name) { |
1183 java_files = [] | 1193 java_files = [] |
1184 srcjar_deps = [ ":${_template_name}__protoc_java" ] | 1194 srcjar_deps = [ ":${_template_name}__protoc_java" ] |
1185 deps = [ | 1195 deps = [ |
1186 "//third_party/android_protobuf:protobuf_nano_javalib", | 1196 "//third_party/android_protobuf:protobuf_nano_javalib", |
1187 ] | 1197 ] |
1188 } | 1198 } |
1189 } | 1199 } |
OLD | NEW |