xref: /aosp_15_r20/external/cronet/third_party/jni_zero/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2023 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Workerimport("//third_party/jni_zero/jni_zero.gni")
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Workerconfig("jni_include_dir") {
8*6777b538SAndroid Build Coastguard Worker  include_dirs = [ jni_headers_dir ]
9*6777b538SAndroid Build Coastguard Worker}
10*6777b538SAndroid Build Coastguard Worker
11*6777b538SAndroid Build Coastguard Workerconfig("toolchain_define") {
12*6777b538SAndroid Build Coastguard Worker  if (is_robolectric) {
13*6777b538SAndroid Build Coastguard Worker    defines = [ "JNI_ZERO_IS_ROBOLECTRIC" ]
14*6777b538SAndroid Build Coastguard Worker  }
15*6777b538SAndroid Build Coastguard Worker}
16*6777b538SAndroid Build Coastguard Worker
17*6777b538SAndroid Build Coastguard Worker# This is the public target that we intend others to use.
18*6777b538SAndroid Build Coastguard Workercomponent("jni_zero") {
19*6777b538SAndroid Build Coastguard Worker  # This is the public API.
20*6777b538SAndroid Build Coastguard Worker  sources = [ "jni_zero.h" ]
21*6777b538SAndroid Build Coastguard Worker
22*6777b538SAndroid Build Coastguard Worker  # These are intended to only be used within jni_zero and the code it generates.
23*6777b538SAndroid Build Coastguard Worker  sources += [
24*6777b538SAndroid Build Coastguard Worker    "jni_export.h",
25*6777b538SAndroid Build Coastguard Worker    "jni_zero.cc",
26*6777b538SAndroid Build Coastguard Worker    "jni_zero_internal.h",
27*6777b538SAndroid Build Coastguard Worker    "logging.cc",
28*6777b538SAndroid Build Coastguard Worker    "logging.h",
29*6777b538SAndroid Build Coastguard Worker  ]
30*6777b538SAndroid Build Coastguard Worker  if (is_android) {
31*6777b538SAndroid Build Coastguard Worker    libs = [ "log" ]
32*6777b538SAndroid Build Coastguard Worker  } else if (is_robolectric) {
33*6777b538SAndroid Build Coastguard Worker    public_configs = [ "//third_party/jdk:jdk" ]
34*6777b538SAndroid Build Coastguard Worker  }
35*6777b538SAndroid Build Coastguard Worker  configs += [ ":toolchain_define" ]
36*6777b538SAndroid Build Coastguard Worker}
37*6777b538SAndroid Build Coastguard Worker
38*6777b538SAndroid Build Coastguard Workerif (enable_java_templates && is_android) {
39*6777b538SAndroid Build Coastguard Worker  import("//build/config/android/rules.gni")
40*6777b538SAndroid Build Coastguard Worker
41*6777b538SAndroid Build Coastguard Worker  java_library("jni_zero_java") {
42*6777b538SAndroid Build Coastguard Worker    supports_android = true
43*6777b538SAndroid Build Coastguard Worker    deps = [ "//build/android:build_java" ]
44*6777b538SAndroid Build Coastguard Worker    sources = [
45*6777b538SAndroid Build Coastguard Worker      "java/src/org/jni_zero/AccessedByNative.java",
46*6777b538SAndroid Build Coastguard Worker      "java/src/org/jni_zero/CalledByNative.java",
47*6777b538SAndroid Build Coastguard Worker      "java/src/org/jni_zero/CalledByNativeForTesting.java",
48*6777b538SAndroid Build Coastguard Worker      "java/src/org/jni_zero/CalledByNativeUnchecked.java",
49*6777b538SAndroid Build Coastguard Worker      "java/src/org/jni_zero/CheckDiscard.java",
50*6777b538SAndroid Build Coastguard Worker      "java/src/org/jni_zero/JNINamespace.java",
51*6777b538SAndroid Build Coastguard Worker      "java/src/org/jni_zero/JniStaticTestMocker.java",
52*6777b538SAndroid Build Coastguard Worker      "java/src/org/jni_zero/JniType.java",
53*6777b538SAndroid Build Coastguard Worker      "java/src/org/jni_zero/NativeClassQualifiedName.java",
54*6777b538SAndroid Build Coastguard Worker      "java/src/org/jni_zero/NativeLibraryLoadedStatus.java",
55*6777b538SAndroid Build Coastguard Worker      "java/src/org/jni_zero/NativeMethods.java",
56*6777b538SAndroid Build Coastguard Worker    ]
57*6777b538SAndroid Build Coastguard Worker    proguard_configs = [ "proguard.flags" ]
58*6777b538SAndroid Build Coastguard Worker  }
59*6777b538SAndroid Build Coastguard Worker
60*6777b538SAndroid Build Coastguard Worker  group("jni_zero_tests") {
61*6777b538SAndroid Build Coastguard Worker    testonly = true
62*6777b538SAndroid Build Coastguard Worker    deps = [
63*6777b538SAndroid Build Coastguard Worker      "//third_party/jni_zero/sample:jni_zero_sample_apk_test",
64*6777b538SAndroid Build Coastguard Worker      "//third_party/jni_zero/test:jni_zero_compile_check_apk",
65*6777b538SAndroid Build Coastguard Worker    ]
66*6777b538SAndroid Build Coastguard Worker  }
67*6777b538SAndroid Build Coastguard Worker}
68