Files
wehub-resource-sync 8a852e4b4e
cffconvert / validate (push) Has been skipped
License Check / license-check (push) Failing after 2s
chore: import upstream snapshot with attribution
2026-07-13 12:14:16 +08:00

249 lines
6.7 KiB
Python

# Copyright 2019 The TensorFlow Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ==============================================================================
load("@flatbuffers//:build_defs.bzl", "flatbuffer_android_library", "flatbuffer_cc_library", "flatbuffer_java_library")
load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
load("@rules_cc//cc:cc_library.bzl", "cc_library")
load("@rules_cc//cc:cc_test.bzl", "cc_test")
load("@xla//third_party/rules_python/python:py_binary.bzl", "py_binary")
load("//tensorflow/core/platform:build_config_root.bzl", "tf_gpu_tests_tags")
load("//tensorflow/lite:special_rules.bzl", "gpu_compatibility_without_gl_deps_internal_visibility_allowlist", "tflite_extra_gles_deps", "tflite_portable_test_suite")
package(
# copybara:uncomment default_applicable_licenses = ["//tensorflow:LICENSE"],
default_visibility = [
"//visibility:public",
],
licenses = ["notice"],
)
flatbuffer_cc_library(
name = "database_fbs",
srcs = ["database.fbs"],
)
exports_files(srcs = ["database.fbs"])
flatbuffer_java_library(
name = "database_fbs_java",
srcs = ["database.fbs"],
package_prefix = "org.tensorflow",
)
flatbuffer_android_library(
name = "database_fbs_android",
srcs = ["database.fbs"],
package_prefix = "org.tensorflow",
)
cc_library(
name = "canonicalize_value",
srcs = ["canonicalize_value.cc"],
hdrs = ["canonicalize_value.h"],
deps = [
":devicedb",
"@com_google_absl//absl/algorithm:container",
"@com_google_absl//absl/strings",
"@com_googlesource_code_re2//:re2",
],
)
cc_test(
name = "canonicalize_value_test",
srcs = ["canonicalize_value_test.cc"],
deps = [
":canonicalize_value",
":devicedb",
"@com_google_googletest//:gtest_main",
],
)
cc_library(
name = "devicedb",
srcs = [
"devicedb.cc",
],
hdrs = [
"devicedb.h",
"variables.h",
],
deps = [
":database_fbs",
],
)
cc_binary(
name = "json_to_fb",
srcs = ["json_to_fb.cc"],
deps = [
"//tensorflow/lite/tools:command_line_flags",
"@flatbuffers",
],
)
genrule(
name = "devicedb-sample_bin",
srcs = [
"database.fbs",
"devicedb-sample.json",
],
outs = ["devicedb-sample.bin"],
cmd = """
$(location :json_to_fb) \
--fbs=$(location :database.fbs) \
--json_input=$(location :devicedb-sample.json) \
--fb_output=$(@)
""",
tools = [":json_to_fb"],
)
py_binary(
name = "convert_binary_to_cc_source",
srcs = ["convert_binary_to_cc_source.py"],
strict_deps = True,
visibility = ["//visibility:public"],
)
genrule(
name = "devicedb-sample_cc",
srcs = ["devicedb-sample.bin"],
outs = [
"devicedb-sample.cc",
"devicedb-sample.h",
],
# convert_file_to_c_source for some reason doesn't define the global with
# 'extern', which is needed for global const variables in C++.
cmd = """
$(location :convert_binary_to_cc_source) \
--input_binary_file $(location :devicedb-sample.bin) \
--output_header_file $(location :devicedb-sample.h) \
--output_source_file $(location :devicedb-sample.cc) \
--array_variable_name g_tflite_acceleration_devicedb_sample_binary
""",
tools = [":convert_binary_to_cc_source"],
)
cc_library(
name = "devicedb_sample",
srcs = ["devicedb-sample.cc"],
hdrs = [
"devicedb-sample.h",
"variables.h",
],
deps = [":database_fbs"],
)
cc_test(
name = "devicedb_test",
srcs = [
"devicedb_test.cc",
],
deps = [
":database_fbs",
":devicedb",
":devicedb_sample",
"//tensorflow/lite/testing:util",
"@com_google_googletest//:gtest_main",
"@flatbuffers",
],
)
exports_files([
"database.fbs",
"gpu_compatibility.bin",
])
genrule(
name = "gpu_compatibility_binary",
srcs = ["gpu_compatibility.bin"],
outs = [
"gpu_compatibility_binary.h",
"gpu_compatibility_binary.cc",
],
# convert_file_to_c_source for some reason doesn't define the global with
# 'extern', which is needed for global const variables in C++.
cmd = """
$(location :convert_binary_to_cc_source) \
--input_binary_file $(location :gpu_compatibility.bin) \
--output_header_file $(location :gpu_compatibility_binary.h) \
--output_source_file $(location :gpu_compatibility_binary.cc) \
--array_variable_name g_tflite_acceleration_gpu_compatibility_binary
""",
tools = [":convert_binary_to_cc_source"],
)
cc_library(
name = "android_info",
srcs = ["android_info.cc"],
hdrs = ["android_info.h"],
deps = [
"@com_google_absl//absl/status",
],
)
cc_library(
name = "gpu_compatibility_binary_embed",
srcs = [":gpu_compatibility_binary.cc"],
hdrs = [":gpu_compatibility_binary.h"],
)
cc_library(
name = "gpu_compatibility",
hdrs = ["gpu_compatibility.h"],
deps = [
":android_info",
":database_fbs",
":devicedb_sample",
":gpu_compatibility_without_gl_deps",
"//tensorflow/lite/delegates/gpu:delegate_options",
"//tensorflow/lite/delegates/gpu/common:gpu_info",
"@com_google_absl//absl/strings:string_view",
] + tflite_extra_gles_deps(),
)
cc_library(
name = "gpu_compatibility_without_gl_deps",
srcs = ["gpu_compatibility.cc"],
hdrs = ["gpu_compatibility.h"],
visibility = gpu_compatibility_without_gl_deps_internal_visibility_allowlist(),
deps = [
":android_info",
":canonicalize_value",
":database_fbs",
":devicedb",
":gpu_compatibility_binary_embed",
"//tensorflow/lite/delegates/gpu:delegate_options",
"//tensorflow/lite/delegates/gpu/common:gpu_info",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@flatbuffers",
],
)
cc_test(
name = "gpu_compatibility_test",
srcs = ["gpu_compatibility_test.cc"],
tags = tf_gpu_tests_tags() + [
"no_cuda_asan", # TODO(b/181032551).
],
deps = [
":devicedb_sample",
":gpu_compatibility",
"@com_google_googletest//:gtest_main",
],
)
tflite_portable_test_suite()