# 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("future") {
  sources = [
    "future.cc",
    "future.h",
  ]

  public_deps = [
    "//garnet/public/lib/fxl",
    "//zircon/public/lib/async-cpp",
    "//zircon/public/lib/async-default",
  ]
}

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

  public_deps = [
    ":future",
    "//garnet/public/lib/async_promise",
    "//garnet/public/lib/fxl",
  ]

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

group("unittests") {
  testonly = true

  deps = [
    ":future_unittest",
    ":operation_unittest",
  ]
}

source_set("future_unittest") {
  testonly = true

  sources = [
    "future_unittest.cc",
  ]

  deps = [
    ":future",
    "//third_party/googletest:gtest",
    "//zircon/public/lib/async-testutils",
  ]
}

source_set("operation_unittest") {
  testonly = true

  sources = [
    "operation_unittest.cc",
  ]

  deps = [
    ":operation",
    "//garnet/public/lib/fxl",
    "//garnet/public/lib/gtest",
    "//third_party/googletest:gtest",
  ]
}
