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

fuchsia_sdk_pkg("sys_inspect_cpp") {
  sources = [
    "component.cc",
    "include/lib/sys/inspect/cpp/component.h",
  ]
  include_dirs = [ "include" ]
  public_deps = [
    "../../fidl/fuchsia.inspect",
    "../inspect",
    "../inspect_service_cpp",
    "../sys_cpp",
  ]
}

group("all"){
  deps = [
    ":sys_inspect_cpp",
  ]
}
