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

# DO NOT MANUALLY EDIT!
# Generated by //scripts/sdk/gn/generate.py.


import("../../build/fidl_library.gni")

fidl_library("fuchsia.feedback") {
  library_name = "feedback"
  namespace = "fuchsia"
  public_deps = [
    "../fuchsia.math",
    "../fuchsia.mem",
  ]
  sources = [
    "annotation.fidl",
    "attachment.fidl",
    "crash_reporter.fidl",
    "data_provider.fidl",
    "data_register.fidl",
    "device_id_provider.fidl",
  ]
}

group("all"){
  deps = [
    ":fuchsia.feedback",
  ]
}
