| # Copyright 2025 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//components/optimization_guide/features.gni") |
| import("//third_party/mediapipe/features.gni") |
| |
| assert(build_with_tflite_lib) |
| |
| visibility = [ "//components/optimization_guide/core/*" ] |
| |
| static_library("op_resolver") { |
| # TODO: crbug.com/422803641 - Move these files to this directory. |
| sources = [ |
| "../tflite_op_resolver.cc", |
| "../tflite_op_resolver.h", |
| ] |
| deps = [ |
| "//components/optimization_guide:machine_learning_tflite_buildflags", |
| "//components/optimization_guide/core:features", |
| "//third_party/tflite", |
| "//third_party/tflite:buildflags", |
| "//third_party/tflite:tflite_public_headers", |
| ] |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| visibility += [ |
| "//services/on_device_model/safety/*", |
| "//services/passage_embeddings/*", |
| ] |
| } |
| |
| static_library("inference") { |
| sources = [ |
| "base_model_executor.h", |
| "base_model_executor_helpers.h", |
| "bert_model_executor.cc", |
| "bert_model_executor.h", |
| "bert_model_handler.cc", |
| "bert_model_handler.h", |
| "execution_status.cc", |
| "execution_status.h", |
| "model_execution_timeout_watchdog.cc", |
| "model_execution_timeout_watchdog.h", |
| "model_executor.h", |
| "model_handler.h", |
| "model_validator.cc", |
| "model_validator.h", |
| "signature_model_executor.h", |
| "tflite_model_executor.h", |
| ] |
| public_deps = [ |
| ":op_resolver", |
| "//components/optimization_guide:machine_learning_tflite_buildflags", |
| "//components/optimization_guide/proto:optimization_guide_proto", |
| "//third_party/abseil-cpp:absl", |
| "//third_party/re2", |
| "//third_party/tflite", |
| "//third_party/tflite:tflite_public_headers", |
| "//third_party/tflite_support", |
| "//third_party/tflite_support:tflite_support_proto", |
| ] |
| deps = [ |
| "//base", |
| "//components/optimization_guide/core:core_util", |
| "//components/optimization_guide/core:features", |
| "//components/optimization_guide/core:prediction", |
| "//net", |
| "//url", |
| ] |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| if (build_with_mediapipe_lib) { |
| sources += [ |
| "mediapipe_text_model_executor.cc", |
| "mediapipe_text_model_executor.h", |
| ] |
| public_deps += [ "//third_party/mediapipe" ] |
| } |
| } |
| |
| static_library("test_support") { |
| testonly = true |
| sources = [ |
| "test_model_executor.cc", |
| "test_model_executor.h", |
| "test_model_handler.h", |
| "test_tflite_model_executor.cc", |
| "test_tflite_model_executor.h", |
| "test_tflite_model_handler.h", |
| ] |
| deps = [ |
| ":inference", |
| "//base", |
| "//third_party/abseil-cpp:absl", |
| ] |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| sources = [ |
| "bert_model_executor_unittest.cc", |
| "model_handler_unittest.cc", |
| "model_validator_unittest.cc", |
| "tflite_model_executor_unittest.cc", |
| ] |
| deps = [ |
| ":inference", |
| ":test_support", |
| "//base", |
| "//base/test:test_support", |
| "//components/optimization_guide/core:core_util", |
| "//components/optimization_guide/core:delivery_test_support", |
| "//components/optimization_guide/core:features", |
| "//components/optimization_guide/core:prediction", |
| "//components/optimization_guide/proto:optimization_guide_proto", |
| "//testing/gtest", |
| "//third_party/abseil-cpp:absl", |
| "//third_party/tflite", |
| "//third_party/tflite:tflite_public_headers", |
| "//third_party/tflite_support", |
| "//third_party/tflite_support:tflite_support_proto", |
| ] |
| if (build_with_mediapipe_lib) { |
| sources += [ "mediapipe_text_model_executor_unittest.cc" ] |
| deps += [ "//third_party/mediapipe" ] |
| } |
| } |