blob: 3ad8da2f2a3068c01a728991f965a5c7b0161b70 [file] [log] [blame]
# This package contains C++ support libraries that Java libraries can invoke.
load("@build_bazel_rules_android//android:rules.bzl", "android_library")
load(
"@org_tensorflow//tensorflow/lite:build_def.bzl",
"tflite_copts",
"tflite_jni_binary",
)
package(
default_visibility = ["//tensorflow_lite_support:users"],
licenses = ["notice"], # Apache 2.0
)
cc_library(
name = "tokenizer",
hdrs = [
"tokenizer.h",
],
deps = [
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "tokenizer_jni_lib",
srcs = [
"tokenizer_jni_lib.cc",
],
hdrs = [
"tokenizer_jni_lib.h",
],
deps = [
":tokenizer",
"//tensorflow_lite_support/cc/utils:jni_utils",
"@org_tensorflow//tensorflow/lite/java/jni",
],
)
cc_library(
name = "bert_tokenizer",
srcs = [
"bert_tokenizer.cc",
],
hdrs = [
"bert_tokenizer.h",
],
deps = [
":tokenizer",
"//tensorflow_lite_support/cc/port:integral_types",
"//tensorflow_lite_support/cc/utils:common_utils",
"@com_google_absl//absl/container:flat_hash_map",
"@com_googlesource_code_re2//:re2",
"@org_tensorflow_text//tensorflow_text/core/kernels:regex_split",
"@org_tensorflow_text//tensorflow_text/core/kernels:wordpiece_tokenizer",
],
)
cc_library(
name = "bert_tokenizer_jni_lib",
srcs = [
"bert_tokenizer_jni.cc",
],
copts = tflite_copts(),
linkopts = [
"-lm",
"-ldl",
],
deps = [
":bert_tokenizer",
":tokenizer_jni_lib",
"//tensorflow_lite_support/cc/utils:jni_utils",
"@com_google_absl//absl/memory",
"@org_tensorflow//tensorflow/lite/java/jni",
],
alwayslink = 1,
)
tflite_jni_binary(
name = "libbert_tokenizer_jni.so",
deps = [
":bert_tokenizer_jni_lib",
],
)
cc_library(
name = "bert_tokenizer_runtime",
srcs = ["libbert_tokenizer_jni.so"],
alwayslink = 1,
)
android_library(
name = "bert_tokenizer_jni",
custom_package = "org.tensorflow.lite.support.text",
manifest = "DummyManifest.xml",
resource_files = [],
deps = [
":bert_tokenizer_runtime", # build_cleaner: skip
],
)
cc_library(
name = "sentencepiece_tokenizer",
hdrs = [
"sentencepiece_tokenizer.h",
],
deps = [
":tokenizer",
"@com_google_sentencepiece//src:sentencepiece_processor",
],
)
cc_library(
name = "sentencepiece_jni_lib",
srcs = [
"sentencepiece_jni.cc",
],
copts = tflite_copts(),
linkopts = [
"-lm",
"-ldl",
],
deps = [
":sentencepiece_tokenizer",
":tokenizer_jni_lib",
"//tensorflow_lite_support/cc/utils:jni_utils",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@org_tensorflow//tensorflow/lite/java/jni",
],
alwayslink = 1,
)
cc_library(
name = "sentencepiece_runtime",
srcs = ["libsentencepiece_jni.so"],
alwayslink = 1,
)
tflite_jni_binary(
name = "libsentencepiece_jni.so",
deps = [
":sentencepiece_jni_lib",
],
)
android_library(
name = "sentencepiece_jni",
custom_package = "org.tensorflow.lite.support.text",
manifest = "DummyManifest.xml",
resource_files = [],
deps = [
":sentencepiece_runtime", # build_cleaner: skip
],
)
cc_library(
name = "tokenizer_utils",
srcs = ["tokenizer_utils.cc"],
hdrs = [
"tokenizer_utils.h",
],
deps = [
":bert_tokenizer",
":regex_tokenizer",
":sentencepiece_tokenizer",
":tokenizer",
"//tensorflow_lite_support/cc:common",
"//tensorflow_lite_support/cc/port:status_macros",
"//tensorflow_lite_support/cc/port:statusor",
"//tensorflow_lite_support/metadata:metadata_schema_cc",
"//tensorflow_lite_support/metadata/cc:metadata_extractor",
"@com_google_absl//absl/status",
],
)
cc_library(
name = "regex_tokenizer",
srcs = [
"regex_tokenizer.cc",
],
hdrs = [
"regex_tokenizer.h",
],
deps = [
":tokenizer",
"//tensorflow_lite_support/cc/utils:common_utils",
"@com_google_absl//absl/container:node_hash_map",
"@com_google_absl//absl/strings",
"@com_googlesource_code_re2//:re2",
],
)