blob: 8afe3bad525dce98c6d64e33b1d94a0211d8e5a2 [file] [log] [blame]
# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//third_party/jni_zero/jni_zero.gni")
config("jni_include_dir") {
include_dirs = [ jni_headers_dir ]
}
config("use_chromium_base_define") {
defines = [ "USE_CHROMIUM_BASE" ]
}
config("toolchain_define") {
if (is_robolectric) {
defines = [ "JNI_ZERO_IS_ROBOLECTRIC" ]
}
}
source_set("jni_export") {
sources = [ "jni_export.h" ]
}
# Base depends on this transitively, so we have to avoid deps onto base.
# Eventually, it will make sense to merge this with :jni_zero once it also no
# longer depends on //base.
component("jni_zero_utils") {
sources = [
"logging.cc",
"logging.h",
]
public_deps = [ ":jni_export" ]
if (is_android) {
libs = [ "log" ]
}
configs += [ ":toolchain_define" ]
}
source_set("jni_zero") {
sources = [
"jni_int_wrapper.h",
"jni_zero_helper.h",
]
public_deps = [
":jni_export",
":jni_zero_utils",
"//base",
]
public_configs = [ ":use_chromium_base_define" ]
}
if (enable_java_templates && is_android) {
import("//build/config/android/rules.gni")
java_library("jni_zero_java") {
supports_android = true
deps = [ "//build/android:build_java" ]
sources = [
"java/src/org/jni_zero/AccessedByNative.java",
"java/src/org/jni_zero/CalledByNative.java",
"java/src/org/jni_zero/CalledByNativeForTesting.java",
"java/src/org/jni_zero/CalledByNativeUnchecked.java",
"java/src/org/jni_zero/CheckDiscard.java",
"java/src/org/jni_zero/JNINamespace.java",
"java/src/org/jni_zero/JniStaticTestMocker.java",
"java/src/org/jni_zero/NativeClassQualifiedName.java",
"java/src/org/jni_zero/NativeLibraryLoadedStatus.java",
"java/src/org/jni_zero/NativeMethods.java",
]
proguard_configs = [ "proguard.flags" ]
}
}