# 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")

group("tests") {
  testonly = true
  deps = [ "test:fake-ddk-package" ]
}

zx_library("fake_ddk") {
  sdk = "source"
  sdk_headers = [ "lib/fake_ddk/fake_ddk.h" ]
  testonly = true
  configs += [ "//build/config:all_source" ]
  sources = [
    "fake_ddk.cc",
    "fidl-helper.cc",
  ]
  deps = [
    "//sdk/lib/fdio",
    "//src/lib/ddk",
    "//src/lib/ddktl",
    "//zircon/public/lib/async",
    "//zircon/public/lib/async-cpp",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/fidl-llcpp",
    "//zircon/public/lib/sync",
    "//zircon/public/lib/zx",
    "//zircon/public/lib/zxtest",
    "//zircon/system/ulib/async-loop",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/fidl-async",
    "//zircon/system/ulib/fidl-async:fidl-async-cpp",
  ]
  public_deps = [
    # <lib/fake_ddk/fidl-helper.h> has #include <lib/async-loop/cpp/loop.h>.
    "//zircon/system/ulib/async-loop",

    # <lib/fake_ddk/fake_ddk.h> has #include <ddk/device.h>.
    "//src/lib/ddk",

    # <lib/fake_ddk/fidl-helper.h> has #include <ddktl/fidl.h>.
    "//src/lib/ddktl",

    # <lib/fake_ddk/fake_ddk.h> has #include <fbl/array.h>
    "//zircon/public/lib/fbl",

    # <lib/fake_ddk/fidl-helper.h> has #include <lib/fidl/llcpp/server.h>.
    "//zircon/public/lib/fidl-llcpp",

    # <lib/fake_ddk/fake_ddk.h> has #include <lib/sync/completion.h>.
    "//zircon/public/lib/sync",
  ]
}
