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

visibility = [ "//peridot/bin/ledger/*" ]

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

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

  configs += [ "//peridot/bin/ledger:ledger_config" ]
}

source_set("unittests") {
  testonly = true

  sources = [
    "mutable_unittest.cc",
    "sync_helper_unittest.cc",
  ]

  deps = [
    ":sync_helper",
    "//third_party/googletest:gtest",
  ]

  configs += [ "//peridot/bin/ledger:ledger_config" ]
}
