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

import("//build/zircon/migrated_targets.gni")

zx_library("async") {
  sdk = "source"
  sdk_publishable = true
  sdk_headers = [
    "lib/async/dispatcher.h",
    "lib/async/irq.h",
    "lib/async/paged_vmo.h",
    "lib/async/receiver.h",
    "lib/async/task.h",
    "lib/async/time.h",
    "lib/async/trap.h",
    "lib/async/wait.h",
  ]
  sdk_migrated = true
  host = true
  public_deps = [
    # <lib/async/cpp/executor.h> has #include <lib/fit/promise.h>
    "//sdk/lib/fit-promise:headers",

    # <lib/async/cpp/wait.h> has #include <lib/fit/function.h>.
    "//sdk/lib/fit:headers",
  ]
  sources = [ "ops.c" ]
  deps = [
    "//sdk/lib/fit",
    "//sdk/lib/fit-promise",
    "//src/zircon/lib/zircon",
  ]
}

zx_library("async-cpp") {
  sdk = "source"
  sdk_publishable = true
  sdk_headers = [
    "lib/async/cpp/executor.h",
    "lib/async/cpp/irq.h",
    "lib/async/cpp/paged_vmo.h",
    "lib/async/cpp/receiver.h",
    "lib/async/cpp/task.h",
    "lib/async/cpp/time.h",
    "lib/async/cpp/trap.h",
    "lib/async/cpp/wait.h",
  ]
  sdk_migrated = true
  public_deps = [
    # <lib/async/cpp/executor.h> has #include <lib/zx/time.h>.
    # <lib/async/cpp/task.h> has #include <lib/zx/time.h>.
    "//zircon/system/ulib/zx:headers",

    # <lib/async/cpp/executor.h> has many lib/fit-promise includes.
    "//sdk/lib/fit-promise:headers",

    # <lib/async/cpp/task.h> has #include <lib/fit/function.h>.
    "//sdk/lib/fit:headers",
  ]
  sources = [
    "executor.cc",
    "irq.cc",
    "paged_vmo.cc",
    "receiver.cc",
    "task.cc",
    "trap.cc",
    "wait.cc",
  ]
  deps = [
    ":async",
    "//src/zircon/lib/zircon",
    "//zircon/system/ulib/zx",
  ]
}

group("tests") {
  testonly = true
  deps = [ "test" ]
}
