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

# NOTE: fuchsia.sys2 is slowly being unpacked into a set of
# `fuchsia.component.*` libraries.
fidl("fuchsia.sys2") {
  # TODO(fxbug.dev/35879): Remove lint exclusions by fixing known FIDL lint violations in this target
  excluded_checks = [
    "string-bounds-not-specified",
    "vector-bounds-not-specified",
  ]

  sdk_category = "internal"

  public_deps = [
    "//sdk/fidl/fuchsia.component",
    "//sdk/fidl/fuchsia.data",
    "//sdk/fidl/fuchsia.io",
    "//sdk/fidl/fuchsia.io2",
    "//sdk/fidl/fuchsia.url",
  ]

  sources = [
    "decls/capability_decl.fidl",
    "decls/child_decl.fidl",
    "decls/collection_decl.fidl",
    "decls/component_decl.fidl",
    "decls/environment_decl.fidl",
    "decls/expose_decl.fidl",
    "decls/object.fidl",
    "decls/offer_decl.fidl",
    "decls/relative_refs.fidl",
    "decls/use_decl.fidl",
    "events.fidl",
    "realm.fidl",
    "runtime/component.fidl",
    "runtime/component_resolver.fidl",
    "runtime/package.fidl",
    "storage_admin.fidl",
    "system_controller.fidl",
    "work_scheduler.fidl",
  ]
}
