# Copyright 2017 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("fuchsia.ui.gfx") {
  # TODO(fxb/35879): Remove lint exclusions by fixing known FIDL lint violations in this target
  excluded_checks = [
    "invalid-case-for-constant",
    "invalid-case-for-decl-name",
    "string-bounds-not-specified",
    "vector-bounds-not-specified",
  ]

  sdk_category = "partner"

  sources = [
    "commands.fidl",
    "display_info.fidl",
    "events.fidl",
    "hit.fidl",
    "nodes.fidl",
    "pose_buffer_provider.fidl",
    "renderer.fidl",
    "resources.fidl",
    "shapes.fidl",
    "tokens.fidl",
    "types.fidl",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.images",
    "//sdk/fidl/fuchsia.ui.views",
    "//zircon/system/fidl/fuchsia-mem",
  ]
}
