# Copyright 2017 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.

source_set("debug") {
  sources = [
    "debug.h",
  ]
}

source_set("filesystem") {
  sources = [
    "filesystem.cc",
    "filesystem.h",
  ]

  public_deps = [
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
  ]
}

source_set("rate_limited_retry") {
  sources = [
    "rate_limited_retry.cc",
    "rate_limited_retry.h",
  ]

  public_deps = [
    "//garnet/public/lib/fxl",
  ]
}

source_set("util") {
  sources = [
    "string_escape.cc",
    "string_escape.h",
  ]

  public_deps = [
    "//garnet/public/lib/fxl",
  ]
}

source_set("ptr") {
  sources = [
    "ptr.h",
  ]
}

source_set("unittests") {
  testonly = true

  sources = [
    "string_escape_unittest.cc",
  ]

  public_deps = [
    ":util",
    "//garnet/public/lib/fxl",
    "//third_party/googletest:gtest",
  ]
}

source_set("wait_until_idle") {
  sources = [
    "wait_until_idle.cc",
    "wait_until_idle.h",
  ]

  public_deps = [
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
  ]
}
