blob: 3aaff084d1c16753ecad3c0d5e69365743364783 [file] [edit]
# Copyright 2024 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
load("@org_tensorflow//tensorflow/lite:build_def.bzl", "tflite_cc_shared_object", "tflite_copts")
load("@org_tensorflow//tensorflow/lite/core/shims:cc_library_with_tflite.bzl", "cc_library_with_tflite")
load("@rules_cc//cc:defs.bzl", "cc_binary")
cc_library_with_tflite(
name = "core",
srcs = [
"core.cc",
],
hdrs = [
"core.h",
],
copts = tflite_copts(),
generate_opaque_delegate_target = True,
tflite_deps = [
"@org_tensorflow//tensorflow/lite/c:c_api",
"@org_tensorflow//tensorflow/lite/c:c_api_experimental",
"@org_tensorflow//tensorflow/lite/c:common",
],
deps = [
"//common:log",
"@com_google_absl//absl/time",
],
)
cc_library_with_tflite(
name = "async_kernel",
srcs = [
"async_kernel.cc",
],
hdrs = [
"async_kernel.h",
],
copts = tflite_copts(),
generate_opaque_delegate_target = True,
tflite_deps = [
":core",
"@org_tensorflow//tensorflow/lite/c:c_api",
"@org_tensorflow//tensorflow/lite/c:c_api_experimental",
"@org_tensorflow//tensorflow/lite/c:common",
],
deps = [
"//android:hardware_buffer",
"//common:log",
"@com_google_absl//absl/cleanup",
"@com_google_absl//absl/synchronization",
"@org_tensorflow//tensorflow/lite/async:backend_async_kernel_interface",
"@org_tensorflow//tensorflow/lite/async/interop/c:constants",
"@org_tensorflow//tensorflow/lite/core/async/c:task",
"@org_tensorflow//tensorflow/lite/delegates/utils:async_type_helpers",
],
)
cc_library_with_tflite(
name = "kernel",
srcs = [
"kernel.cc",
],
hdrs = [
"kernel.h",
],
copts = tflite_copts(),
generate_opaque_delegate_target = True,
tflite_deps = [
":async_kernel",
":core",
"//common:simple_async_delegate",
"@org_tensorflow//tensorflow/lite/c:c_api",
"@org_tensorflow//tensorflow/lite/c:c_api_experimental",
"@org_tensorflow//tensorflow/lite/c:common",
],
)
cc_library_with_tflite(
name = "delegate",
srcs = [
"delegate.cc",
],
hdrs = [
"delegate.h",
],
copts = tflite_copts(),
generate_opaque_delegate_target = True,
tflite_deps = [
":kernel",
"//common:simple_async_delegate",
"@org_tensorflow//tensorflow/lite/c:c_api",
"@org_tensorflow//tensorflow/lite/c:c_api_experimental",
"@org_tensorflow//tensorflow/lite/c:common",
],
)
cc_library_with_tflite(
name = "external",
srcs = [
"external.cc",
],
copts = tflite_copts(),
generate_opaque_delegate_target = True,
tflite_deps = [
":delegate",
"@org_tensorflow//tensorflow/lite/acceleration/configuration/c:delegate_plugin",
"@org_tensorflow//tensorflow/lite/acceleration/configuration/c:stable_delegate",
"@org_tensorflow//tensorflow/lite/c:common",
"@org_tensorflow//tensorflow/lite/delegates/utils/experimental/stable_delegate:stable_delegate_interface",
],
)
cc_binary(
name = "external_test",
testonly = True,
srcs = [
"external_test.cc",
],
copts = tflite_copts(),
data = [
":tensorflowlite_cros_sample_delegate",
":test_settings.json",
"@org_tensorflow//tensorflow/lite:testdata/add.bin",
],
deps = [
"@com_google_absl//absl/cleanup",
"@com_google_googletest//:gtest",
"@org_tensorflow//tensorflow/lite/c:c_api",
"@org_tensorflow//tensorflow/lite/delegates/utils/experimental/stable_delegate:delegate_loader",
"@org_tensorflow//tensorflow/lite/delegates/utils/experimental/stable_delegate:tflite_settings_json_parser",
"@org_tensorflow//tensorflow/lite/kernels:builtin_ops",
],
)
tflite_cc_shared_object(
name = "tensorflowlite_cros_sample_delegate",
srcs = ["//android:libnativewindow.so"],
linkopts = [
"-Wl,--no-undefined",
# Expose necessary symbols only.
"-Wl,--version-script,$(location @org_tensorflow//tensorflow/lite/delegates/utils/experimental/stable_delegate:version_script.lds)",
],
per_os_targets = True,
visibility = ["//:__pkg__"],
deps = [
":external_opaque_delegate",
"@org_tensorflow//tensorflow/lite/delegates/utils/experimental/stable_delegate:version_script.lds",
],
)