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

import("//common-mk/pkg_config.gni")

pkg_config("libcros_healthd_mojo_adapter_pkg_deps") {
  pkg_deps = [
    "libbrillo",
    "libchrome",
    "libmojo",
  ]
}

# Library that provides a mojo connection to cros_healthd.
source_set("libcros_healthd_mojo_adapter") {
  configs += [ ":libcros_healthd_mojo_adapter_pkg_deps" ]
  deps = [ "//diagnostics/mojo:cros_healthd_mojo_bindings" ]
  sources = [
    "cros_healthd_mojo_adapter.cc",
    "cros_healthd_mojo_adapter_delegate_impl.cc",
  ]
}

if (use.test) {
  executable("cros_healthd_mojo_adapter_test") {
    configs += [ "//common-mk:test" ]
    deps = [
      ":libcros_healthd_mojo_adapter",
      "//common-mk/testrunner:testrunner",
      "//diagnostics/cros_healthd/fake:libfake_cros_healthd",
    ]
    sources = [ "cros_healthd_mojo_adapter_test.cc" ]
  }
}
