# Copyright 2018 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("callback") {
  sources = [
    "auto_cleanable.h",
    "cancellable.cc",
    "cancellable.h",
    "cancellable_helper.cc",
    "cancellable_helper.h",
    "capture.h",
    "destruction_sentinel.cc",
    "destruction_sentinel.h",
    "managed_container.cc",
    "managed_container.h",
    "operation_serializer.h",
    "scoped_callback.h",
    "scoped_task_runner.cc",
    "scoped_task_runner.h",
    "set_when_called.cc",
    "set_when_called.h",
    "trace_callback.h",
    "waiter.h",
  ]

  public_deps = [
    "//garnet/public/lib/fxl",
    "//zircon/public/lib/async-default",
    "//zircon/public/lib/fit",
    "//zircon/public/lib/trace",
    "//zircon/public/lib/zx",
  ]

  deps = [
    "//zircon/public/lib/async-cpp",
  ]
}

source_set("unittests") {
  testonly = true

  sources = [
    "auto_cleanable_unittest.cc",
    "cancellable_helper_unittest.cc",
    "cancellable_unittest.cc",
    "capture_unittest.cc",
    "destruction_sentinel_unittest.cc",
    "managed_container_unittest.cc",
    "operation_serializer_unittest.cc",
    "scoped_callback_unittest.cc",
    "scoped_task_runner_unittest.cc",
    "set_when_called_unittest.cc",
    "waiter_unittest.cc",
  ]

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