# Copyright 2016 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 = [
  "//src/modular/bin/*",
  "//peridot/lib/*",
  "//src/ledger/*",
  "//src/modular/*",
]

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

  public_deps = [
    "//src/lib/fsl",
    "//src/lib/fxl",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/async-loop-default",
    "//zircon/public/lib/memfs",
    "//zircon/public/lib/sync",
  ]

  deps = [
    "//zircon/public/lib/fdio",
  ]
}

source_set("unittests") {
  testonly = true

  sources = [
    "scoped_tmpfs_unittest.cc",
  ]

  deps = [
    ":scoped_tmpfs",
    "//src/lib/fxl",
    "//third_party/googletest:gtest",
  ]
}
