# 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/unification/zx_library.gni")

zx_library("async-loop") {
  sdk = "source"
  sdk_publishable = true
  sdk_headers = [ "lib/async-loop/loop.h" ]
  configs += [ "//build/config:all_source" ]
  sources = [ "loop.c" ]
  public_deps = [
    # <lib/async-loop/loop.h> has #include <lib/async/dispatcher.h>.
    "//zircon/public/lib/async",
  ]
  deps = [ "//zircon/public/lib/async" ]
}

zx_library("async-loop-cpp") {
  sdk = "source"
  sdk_publishable = true
  sdk_headers = [ "lib/async-loop/cpp/loop.h" ]
  sources = [ "loop_wrapper.cc" ]
  deps = [
    ":async-loop",
    "//zircon/public/lib/async",
  ]
  public_deps = [
    ":async-loop",

    # <lib/async-loop/cpp/loop.h> has #include <lib/zx/time.h>.
    "//zircon/public/lib/zx",
  ]
}

zx_library("async-loop-default") {
  sdk = "static"
  sdk_publishable = true
  sdk_headers = [ "lib/async-loop/default.h" ]
  shared = false
  sources = [ "default.c" ]
  deps = [ "//zircon/system/ulib/async-default" ]
  public_deps = [
    # <lib/async-loop/default.h> has #include <lib/async-loop/loop.h>.
    ":async-loop",
  ]
  runtime_deps = [ "//zircon/system/ulib/async-default:async-default_sdk" ]
}

group("tests") {
  testonly = true
  deps = [ "test:async-loop-test-pkg" ]
}
