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 |
+ } |
+} |