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

fidl("components") {
  name = "fidl.test.components"

  sources = [ "components.fidl" ]
}

fidl("hub") {
  name = "fuchsia.test.hub"
  sdk_category = "internal"

  sources = [ "hub.fidl" ]

  public_deps = [ "//zircon/system/fidl/fuchsia-io" ]
}

fidl("echofactory") {
  name = "fuchsia.test.echofactory"

  sources = [ "echo_factory.fidl" ]

  public_deps = [ "//examples/components/routing/fidl:echo" ]
}

fidl("fuchsia.test.workscheduler") {
  sdk_category = "internal"

  sources = [ "fuchsia.test.workscheduler.fidl" ]

  public_deps = [ "//sdk/fidl/fuchsia.sys2" ]
}
