blob: 24efc9f7d97e1b7c86b428cb5b9f94264f8cde63 [file]
load("@pybind11_bazel//:build_defs.bzl", "pybind_extension")
load("@tflm_pip_deps//:requirements.bzl", "requirement")
load(
"//tensorflow/lite/micro:build_def.bzl",
"micro_copts",
)
load(
"//tensorflow:extra_rules.bzl",
"tflm_python_op_resolver_friends",
)
package(
features = ["-layering_check"],
licenses = ["notice"],
)
package_group(
name = "op_resolver_friends",
packages = tflm_python_op_resolver_friends(),
)
cc_library(
name = "python_ops_resolver",
srcs = [
"python_ops_resolver.cc",
],
hdrs = [
"python_ops_resolver.h",
],
copts = micro_copts(),
visibility = [
":op_resolver_friends",
"//tensorflow/lite/micro/integration_tests:__subpackages__",
"//tensorflow/lite/micro/python/interpreter/src:__subpackages__",
],
deps = [
"//tensorflow/lite/micro:micro_compatibility",
"//tensorflow/lite/micro:op_resolvers",
"//tensorflow/lite/micro/kernels:micro_ops",
],
)
pybind_extension(
name = "_runtime",
# target = _runtime.so because pybind_extension() appends suffix
srcs = [
"_runtime.cc",
"interpreter_wrapper.cc",
"interpreter_wrapper.h",
"numpy_utils.cc",
"numpy_utils.h",
"pybind11_lib.h",
"python_utils.cc",
"python_utils.h",
"shared_library.h",
],
deps = [
":python_ops_resolver",
"//tensorflow/lite/micro:micro_framework",
"//tensorflow/lite/micro:op_resolvers",
"//tensorflow/lite/micro:recording_allocators",
"@numpy_cc_deps//:cc_headers",
],
)
py_library(
name = "runtime",
srcs = [
"runtime.py",
],
data = [
":_runtime.so",
],
srcs_version = "PY3",
visibility = ["//visibility:public"],
deps = [
requirement("numpy"),
"//tensorflow/lite/tools:flatbuffer_utils",
],
)
py_test(
name = "runtime_test",
srcs = ["runtime_test.py"],
python_version = "PY3",
tags = [
"noasan",
"nomsan", # Python doesn't like these symbols in _runtime.so
"noubsan",
],
deps = [
requirement("numpy"),
requirement("tensorflow-cpu"),
":runtime",
"//tensorflow/lite/micro/testing:generate_test_models_lib",
],
)