Chromium Code Reviews| Index: build/config/android/rules.gni |
| diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..3ef3e179aa175ba23cab9328f429acca773ad26d |
| --- /dev/null |
| +++ b/build/config/android/rules.gni |
| @@ -0,0 +1,57 @@ |
| +# Declare a jni target |
|
cjhopman
2014/04/15 00:45:27
It would be really neat if this help could be surf
|
| +# |
| +# This target generates the native jni bindings for a set of .java files. |
|
brettw
2014/04/15 20:50:26
Con't forget copyright for this file.
cjhopman
2014/04/17 17:57:03
Done.
|
| +# |
| +# See base/android/jni_generator/jni_generator.py for more info about the |
| +# format of generating JNI bindings. |
| +# |
| +# Variables |
| +# sources: list of .java files to generate jni for |
| +# jni_package: subdirectory path for generated bindings |
| +# |
| +# Example |
| +# generate_jni("foo_jni") { |
| +# sources = [ |
| +# "android/java/src/org/chromium/foo/Foo.java", |
| +# "android/java/src/org/chromium/foo/FooUtil.java", |
| +# ] |
| +# jni_package = "foo" |
| +# } |
| +template("generate_jni") { |
| + assert(defined(invoker.sources)) |
| + assert(defined(invoker.jni_package)) |
| + jni_package = invoker.jni_package |
| + root_gen_dir = invoker.root_gen_dir |
| + base_output_dir = "${root_gen_dir}/${target_name}/${jni_package}" |
| + jni_output_dir = "${base_output_dir}/jni" |
| + |
| + jni_generator_includes = rebase_path("//base/android/jni_generator/jni_generator_helper.h") |
|
brettw
2014/04/15 20:50:26
I'd put rebase_path on the next line to avoid the
cjhopman
2014/04/17 17:57:03
Done.
|
| + |
| + config("jni_includes_${target_name}") { |
| + include_dirs = [ base_output_dir ] |
| + } |
| + |
| + action_foreach(target_name) { |
| + script = "//base/android/jni_generator/jni_generator.py" |
| + direct_dependent_configs = [ ":jni_includes_${target_name}" ] |
| + sources = invoker.sources |
| + outputs = [ |
| + "${jni_output_dir}/{{source_name_part}}_jni.h" |
| + ] |
| + |
| + args = [ |
| + "--input_file={{source}}", |
| + "--optimize_generation=1", |
| + "--ptr_type=long", |
| + "--output_dir", rebase_path(jni_output_dir), |
| + "--includes=${jni_generator_includes}", |
| + ] |
| + if (defined(invoker.jni_generator_jarjar_file)) { |
| + args += [ |
| + "--jarjar", rebase_path(jni_generator_jarjar_file) |
| + ] |
| + } |
| + |
| + hard_dep = true |
| + } |
| +} |