xref: /aosp_15_r20/external/cronet/third_party/jni_zero/sample/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1# Copyright 2016 The Chromium Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/config/android/rules.gni")
6import("//third_party/jni_zero/jni_zero.gni")
7
8testonly = true
9
10generate_jni("sample_header") {
11  sources = [ "java/src/org/jni_zero/sample/Sample.java" ]
12}
13
14android_library("sample_java") {
15  srcjar_deps = [ ":sample_header" ]
16  sources = [
17    "java/src/org/jni_zero/sample/Sample.java",
18    "java/src/org/jni_zero/sample/SampleActivity.java",
19  ]
20
21  deps = [
22    "//build/android:build_java",
23    "//third_party/jni_zero:jni_zero_java",
24  ]
25}
26
27source_set("sample_native_side") {
28  deps = [ ":sample_header" ]
29  sources = [ "sample.cc" ]
30}
31
32shared_library_with_jni("libjni_zero_sample") {
33  if (allow_jni_multiplexing) {
34    _linker_script = "sample_lib_multiplexing_version_script.txt"
35  } else {
36    _linker_script = "sample_lib_version_script.txt"
37  }
38  sources = [ "sample_entry_point.cc" ]
39
40  deps = [
41    ":sample_native_side",
42    "//third_party/jni_zero",
43  ]
44  inputs = [ _linker_script ]
45  ldflags =
46      [ "-Wl,--version-script=" + rebase_path(_linker_script, root_build_dir) ]
47  java_targets = [ ":jni_zero_sample_apk" ]
48  remove_uncalled_jni = true
49}
50
51android_apk("jni_zero_sample_apk") {
52  apk_name = "JniZeroSample"
53  android_manifest = "AndroidManifest.xml"
54  deps = [ ":sample_java" ]
55  shared_libraries = [ ":libjni_zero_sample" ]
56  srcjar_deps = [ ":libjni_zero_sample__jni_registration" ]
57}
58
59instrumentation_test_apk("jni_zero_sample_apk_test") {
60  apk_name = "JniZeroSampleTest"
61  apk_under_test = ":jni_zero_sample_apk"
62  android_manifest = "javatests/AndroidManifest.xml"
63  sources = [ "javatests/src/org/jni_zero/test_sample/JniZeroSampleTest.java" ]
64  deps = [
65    ":sample_java",
66    "//third_party/androidx:androidx_test_core_java",
67    "//third_party/androidx:androidx_test_ext_junit_java",
68    "//third_party/androidx:androidx_test_rules_java",
69    "//third_party/androidx:androidx_test_runner_java",
70    "//third_party/google-truth:google_truth_java",
71    "//third_party/junit",
72  ]
73}
74