# Copyright 2024 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//services/on_device_model/on_device_model.gni")

source_set("passage_embeddings") {
  _configs = configs
  configs = []
  configs = [ "//third_party/tflite:tflite_shim_config" ] + _configs
  sources = [
    "passage_embedder.cc",
    "passage_embedder.h",
    "passage_embedder_execution_task.cc",
    "passage_embedder_execution_task.h",
    "passage_embedder_executor.cc",
    "passage_embedder_executor.h",
    "passage_embedder_impl.cc",
    "passage_embedder_impl.h",
    "passage_embeddings_op_resolver.cc",
    "passage_embeddings_op_resolver.h",
    "passage_embeddings_service.cc",
    "passage_embeddings_service.h",
  ]
  public_deps = [
    "//components/optimization_guide/core/inference:op_resolver",
    "//mojo/public/cpp/bindings",
    "//services/passage_embeddings/public/mojom",
    "//third_party/sentencepiece",
    "//third_party/sentencepiece:sentencepiece_proto",
    "//third_party/tflite",
    "//third_party/tflite:tflite_public_headers",
    "//third_party/tflite_support",
    "//third_party/tflite_support:tflite_support_proto",
  ]
  deps = [
    "//services/on_device_model:ml_internal_buildflags",
    "//third_party/tflite:buildflags",
  ]

  if (enable_ml_internal) {
    deps += [ "//services/on_device_model/ml" ]
  }
}

source_set("tests") {
  testonly = true
  sources = [
    "passage_embedder_executor_unittest.cc",
    "passage_embedder_impl_unittest.cc",
    "passage_embeddings_service_unittest.cc",
  ]
  deps = [
    ":passage_embeddings",
    "//base/test:test_support",
    "//testing/gtest",
  ]
}
