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

zx_library("block-client") {
  sources = [
    "block-group-registry.cc",
    "client.c",
    "client.cc",
    "remote-block-device.cc",
  ]
  public_deps = [
    # <block-client/cpp/client.h> has #include <lib/zx/fifo.h>.
    "$zx/system/ulib/zx:headers",

    # <block-client/cpp/block-device.h> has #include <.../fidl.h>
    "$zx/system/fidl/fuchsia-device:c.headers",
    "$zx/system/fidl/fuchsia-device:llcpp.headers",
    "$zx/system/fidl/fuchsia-hardware-block:c.headers",
    "$zx/system/fidl/fuchsia-hardware-block-volume:c.headers",
  ]
  deps = [
    "$zx/system/fidl/fuchsia-device:llcpp",
    "$zx/system/fidl/fuchsia-hardware-block:c",
    "$zx/system/fidl/fuchsia-hardware-block-volume:c",
    "$zx/system/fidl/fuchsia-io:c",
    "$zx/system/ulib/ddk:headers",
    "$zx/system/ulib/fbl",
    "$zx/system/ulib/fdio",
    "$zx/system/ulib/fs",
    "$zx/system/ulib/sync",
    "$zx/system/ulib/zircon",
    "$zx/system/ulib/zx",
  ]
}

zx_library("fake-device") {
  testonly = true
  sources = [
    "fake-device.cc",
  ]
  public_deps = [
    ":block-client",
    "$zx/system/ulib/fbl",
    "$zx/system/ulib/range",
    "$zx/system/ulib/storage-metrics",
    "$zx/system/ulib/zx",
  ]
  deps = [
    "$zx/system/ulib/fvm",
    "$zx/system/ulib/zxtest",
  ]
}
