| # Copyright 2016 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//base/android/jni_generator/jni_exception_list.gni") |
| import("//build/config/android/rules.gni") |
| import("//testing/test.gni") |
| |
| generate_jni("jni_sample_header") { |
| sources = [ |
| "java/src/org/chromium/example/jni_generator/SampleForTests.java", |
| ] |
| jni_package = "example" |
| } |
| |
| android_library("jni_sample_java") { |
| java_files = |
| [ "java/src/org/chromium/example/jni_generator/SampleForTests.java" ] |
| deps = [ |
| "//base:base_java", |
| ] |
| } |
| |
| android_library("jni_annotation_sample_java") { |
| java_files = [ "java/src/org/chromium/example/jni_generator/SampleForAnnotationProcessor.java" ] |
| deps = [ |
| "//base:jni_processor_annotations_java", |
| ] |
| annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] |
| } |
| |
| source_set("jni_sample_native_side") { |
| deps = [ |
| ":jni_sample_header", |
| "//base", |
| ] |
| sources = [ |
| "sample_for_tests.cc", |
| "sample_for_tests.h", |
| ] |
| } |
| |
| shared_library("jni_sample_lib") { |
| sources = [ |
| "sample_entry_point.cc", |
| ] |
| |
| deps = [ |
| ":jni_sample_native_side", |
| ":sample_jni_registration", |
| "//base", |
| ] |
| } |
| |
| android_apk("sample_jni_apk") { |
| apk_name = "SampleJni" |
| android_manifest = "AndroidManifest.xml" |
| deps = [ |
| ":jni_sample_java", |
| "//base:base_java", |
| ] |
| shared_libraries = [ ":jni_sample_lib" ] |
| } |
| |
| generate_jni_registration("sample_jni_registration") { |
| target = ":sample_jni_apk" |
| output = "$target_gen_dir/${target_name}.h" |
| exception_files = jni_exception_files |
| } |
| |
| # Serves to test that generated bindings compile properly. |
| group("jni_generator_tests") { |
| deps = [ |
| ":jni_annotation_sample_java", |
| ":sample_jni_apk", |
| ] |
| } |
| |
| java_annotation_processor("jni_processor") { |
| java_files = [ "java/src/org/chromium/jni_generator/JniProcessor.java" ] |
| |
| main_class = "org.chromium.jni_generator.JniProcessor" |
| |
| annotation_processor_deps = [ "//third_party/auto:auto_service_processor" ] |
| |
| deps = [ |
| "//base:jni_processor_annotations_java", |
| "//third_party/android_deps:com_squareup_javapoet_java", |
| "//third_party/auto:auto_service_java", |
| "//third_party/guava:guava_java", |
| ] |
| } |