diff --git a/mediapipe/tasks/cc/core/BUILD b/mediapipe/tasks/cc/core/BUILD index 7c5dcca9ce..72bcb4608a 100644 --- a/mediapipe/tasks/cc/core/BUILD +++ b/mediapipe/tasks/cc/core/BUILD @@ -1,16 +1,4 @@ # Copyright 2022 The MediaPipe Authors. -# -# 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("@org_tensorflow//tensorflow/lite/core/shims:cc_library_with_tflite.bzl", "cc_library_with_tflite", "cc_test_with_tflite") load("@rules_cc//cc:cc_library.bzl", "cc_library") @@ -20,6 +8,43 @@ package(default_visibility = ["//visibility:public"]) licenses(["notice"]) +# ========================= +# 🔥 COMMON MACROS +# ========================= + +def tflite_lib(name, srcs = [], hdrs = [], deps = [], tflite_deps = [], alwayslink = False): + cc_library_with_tflite( + name = name, + srcs = srcs, + hdrs = hdrs, + deps = deps, + tflite_deps = tflite_deps, + alwayslink = 1 if alwayslink else 0, + ) + +# ========================= +# 🔥 SHARED DEPS +# ========================= + +ABSL_BASE = [ + "@com_google_absl//absl/status", + "@com_google_absl//absl/status:statusor", + "@com_google_absl//absl/strings", +] + +TFLITE_CORE = [ + "@org_tensorflow//tensorflow/lite/core/api:op_resolver", +] + +# ========================= +# 🔥 CORE LIBS +# ========================= + +cc_library( + name = "host_environment", + hdrs = ["host_environment.h"], +) + cc_library( name = "base_options", srcs = ["base_options.cc"], @@ -33,31 +58,7 @@ cc_library( "//mediapipe/tasks/cc/core/proto:external_file_cc_proto", "@com_google_absl//absl/log:absl_log", "@com_google_absl//absl/memory", - "@org_tensorflow//tensorflow/lite/core/api:op_resolver", - "@org_tensorflow//tensorflow/lite/kernels:builtin_ops", - ], -) - -cc_library( - name = "host_environment", - hdrs = ["host_environment.h"], -) - -cc_test( - name = "base_options_test", - srcs = ["base_options_test.cc"], - data = [ - "//mediapipe/tasks/testdata/core:test_models", - ], - deps = [ - ":base_options", - ":utils", - "//mediapipe/calculators/tensor:inference_calculator_cc_proto", - "//mediapipe/framework/port:gtest", - "//mediapipe/tasks/cc/core/proto:acceleration_cc_proto", - "//mediapipe/tasks/cc/core/proto:external_file_cc_proto", - "@com_google_googletest//:gtest_main", - ], + ] + TFLITE_CORE, ) cc_library( @@ -70,14 +71,16 @@ cc_library( "//mediapipe/tasks/cc/core/proto:external_file_cc_proto", "//mediapipe/util:resource_util", "@com_google_absl//absl/memory", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + ] + ABSL_BASE + [ "@com_google_absl//absl/strings:str_format", ], ) -cc_library_with_tflite( +# ========================= +# 🔥 TFLITE LIBS +# ========================= + +tflite_lib( name = "mediapipe_builtin_op_resolver", srcs = ["mediapipe_builtin_op_resolver.cc"], hdrs = ["mediapipe_builtin_op_resolver.h"], @@ -99,41 +102,7 @@ cc_library_with_tflite( ], ) -cc_library_with_tflite( - name = "model_task_graph", - srcs = ["model_task_graph.cc"], - hdrs = ["model_task_graph.h"], - tflite_deps = [ - ":model_resources", - ":model_resources_cache", - ], - deps = [ - ":model_asset_bundle_resources", - ":model_resources_calculator", - "//mediapipe/calculators/tensor:inference_calculator_cc_proto", - "//mediapipe/framework:calculator_cc_proto", - "//mediapipe/framework:calculator_framework", - "//mediapipe/framework:subgraph", - "//mediapipe/framework/api2:builder", - "//mediapipe/framework/api2:port", - "//mediapipe/framework/port:status", - "//mediapipe/tasks/cc:common", - "//mediapipe/tasks/cc/core/proto:acceleration_cc_proto", - "//mediapipe/tasks/cc/core/proto:base_options_cc_proto", - "//mediapipe/tasks/cc/core/proto:external_file_cc_proto", - "//mediapipe/tasks/cc/core/proto:inference_subgraph_cc_proto", - "//mediapipe/tasks/cc/core/proto:model_resources_calculator_cc_proto", - "@com_google_absl//absl/log:absl_log", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/strings:str_format", - ], -) - -# TODO: Enable this test - -cc_library_with_tflite( +tflite_lib( name = "model_resources", srcs = ["model_resources.cc"], hdrs = ["model_resources.h"], @@ -153,44 +122,12 @@ cc_library_with_tflite( "//mediapipe/util:resource_util_custom", "//mediapipe/util/tflite:error_reporter", "@com_google_absl//absl/memory", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + ] + ABSL_BASE + TFLITE_CORE + [ "@org_tensorflow//tensorflow/lite/core/api:error_reporter", - "@org_tensorflow//tensorflow/lite/core/api:op_resolver", - ], -) - -cc_test_with_tflite( - name = "model_resources_test", - srcs = ["model_resources_test.cc"], - data = [ - "//mediapipe/tasks/testdata/core:test_models", - ], - tflite_deps = [ - ":model_resources", - "@org_tensorflow//tensorflow/lite:framework_stable", - "@org_tensorflow//tensorflow/lite:test_util", - "@org_tensorflow//tensorflow/lite/kernels:builtin_ops", - ], - deps = [ - ":utils", - "//mediapipe/framework/api2:packet", - "//mediapipe/framework/port:gtest_main", - "//mediapipe/tasks/cc:common", - "//mediapipe/tasks/cc/core/proto:external_file_cc_proto", - "//mediapipe/tasks/cc/metadata:metadata_extractor", - "@com_google_absl//absl/memory", - "@com_google_absl//absl/status", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/strings:cord", - "@org_tensorflow//tensorflow/lite:mutable_op_resolver", - "@org_tensorflow//tensorflow/lite/c:common", - "@org_tensorflow//tensorflow/lite/core/api:op_resolver", ], ) -cc_library_with_tflite( +tflite_lib( name = "model_resources_cache", srcs = ["model_resources_cache.cc"], hdrs = ["model_resources_cache.h"], @@ -205,14 +142,10 @@ cc_library_with_tflite( "//mediapipe/tasks/cc:common", "@com_google_absl//absl/container:flat_hash_map", "@com_google_absl//absl/memory", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@org_tensorflow//tensorflow/lite/core/api:op_resolver", - ], + ] + ABSL_BASE + TFLITE_CORE, ) -cc_library_with_tflite( +tflite_lib( name = "model_resources_calculator", srcs = ["model_resources_calculator.cc"], tflite_deps = [ @@ -226,37 +159,11 @@ cc_library_with_tflite( "//mediapipe/tasks/cc/core/proto:external_file_cc_proto", "//mediapipe/tasks/cc/core/proto:model_resources_calculator_cc_proto", "//mediapipe/tasks/cc/metadata:metadata_extractor", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@org_tensorflow//tensorflow/lite/core/api:op_resolver", - ], - alwayslink = 1, + ] + ABSL_BASE + TFLITE_CORE, + alwayslink = True, ) -cc_test( - name = "model_resources_calculator_test", - srcs = ["model_resources_calculator_test.cc"], - data = [ - "//mediapipe/tasks/testdata/core:test_models", - ], - deps = [ - ":model_resources", - ":model_resources_cache", - ":model_resources_calculator", - "//mediapipe/framework/port:gtest_main", - "//mediapipe/framework/port:parse_text_proto", - "//mediapipe/tasks/cc/core/proto:external_file_cc_proto", - "//mediapipe/tasks/cc/core/proto:model_resources_calculator_cc_proto", - "//mediapipe/tasks/cc/metadata:metadata_extractor", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@org_tensorflow//tensorflow/lite:test_util", - "@org_tensorflow//tensorflow/lite/core/api:op_resolver", - ], -) - -cc_library_with_tflite( +tflite_lib( name = "task_runner", srcs = ["task_runner.cc"], hdrs = ["task_runner.h"], @@ -282,52 +189,20 @@ cc_library_with_tflite( "@com_google_absl//absl/container:flat_hash_map", "@com_google_absl//absl/log:absl_log", "@com_google_absl//absl/memory", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", "@com_google_absl//absl/synchronization", - "@org_tensorflow//tensorflow/lite/core/api:op_resolver", - ], + ] + ABSL_BASE + TFLITE_CORE, ) -cc_test_with_tflite( - name = "task_runner_test", - srcs = ["task_runner_test.cc"], - data = [ - "//mediapipe/tasks/testdata/core:test_models", - ], - tflite_deps = [ - ":task_runner", - ":model_resources", - ":model_resources_cache", - "@org_tensorflow//tensorflow/lite:test_util", - ], - deps = [ - "//mediapipe/calculators/core:pass_through_calculator", - "//mediapipe/calculators/core:side_packet_to_stream_calculator", - "//mediapipe/framework:calculator_cc_proto", - "//mediapipe/framework:packet", - "//mediapipe/framework/port:gtest_main", - "//mediapipe/framework/port:parse_text_proto", - "//mediapipe/tasks/cc/core/proto:external_file_cc_proto", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - ], -) - -cc_library_with_tflite( +tflite_lib( name = "base_task_api", hdrs = ["base_task_api.h"], - tflite_deps = [ - ":task_runner", - ], + tflite_deps = [":task_runner"], deps = [ "//mediapipe/calculators/core:flow_limiter_calculator", ], ) -cc_library_with_tflite( +tflite_lib( name = "task_api_factory", hdrs = ["task_api_factory.h"], tflite_deps = [ @@ -345,13 +220,13 @@ cc_library_with_tflite( "//mediapipe/tasks/cc/core/proto:base_options_cc_proto", "//mediapipe/tasks/cc/core/proto:external_file_cc_proto", "//mediapipe/tasks/cc/core/proto:inference_subgraph_cc_proto", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", - "@org_tensorflow//tensorflow/lite/core/api:op_resolver", - ], + ] + ABSL_BASE + TFLITE_CORE, ) +# ========================= +# 🔥 NORMAL LIBS +# ========================= + cc_library( name = "utils", srcs = ["utils.cc"], @@ -384,27 +259,7 @@ cc_library( "//mediapipe/tasks/cc/metadata/utils:zip_utils", "//mediapipe/util:resource_util", "@com_google_absl//absl/container:flat_hash_map", - "@com_google_absl//absl/status", - "@com_google_absl//absl/status:statusor", - "@com_google_absl//absl/strings", + ] + ABSL_BASE + [ "@com_google_absl//absl/strings:str_format", ], ) - -cc_test( - name = "model_asset_bundle_resources_test", - srcs = ["model_asset_bundle_resources_test.cc"], - data = [ - "//mediapipe/tasks/testdata/core:test_models", - ], - deps = [ - ":model_asset_bundle_resources", - ":model_resources", - ":utils", - "//mediapipe/framework/port:gtest_main", - "//mediapipe/framework/port:status", - "//mediapipe/tasks/cc:common", - "//mediapipe/tasks/cc/core/proto:external_file_cc_proto", - "//mediapipe/tasks/cc/metadata/utils:zip_utils", - ], -)