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

package("kcounter_inspect") {
  binaries = [
    {
      name = "kcounter_inspect"
      shell = true
    },
  ]

  meta = [
    {
      path = "meta/kcounter_inspect.cmx"
      dest = "kcounter_inspect.cmx"
    },
  ]

  deps = [ ":main" ]
}

source_set("lib") {
  sources = [
    "vmo_file_with_update.cc",
    "vmo_file_with_update.h",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.kernel",
    "//sdk/lib/vfs/cpp",
    "//zircon/public/lib/zx",
  ]
}

executable("main") {
  output_name = "kcounter_inspect"

  sources = [ "main.cc" ]

  deps = [
    ":lib",
    "//garnet/public/lib/inspect_deprecated",
    "//garnet/public/lib/inspect_deprecated:component",
    "//sdk/fidl/fuchsia.kernel",
    "//sdk/lib/sys/cpp",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/async-loop-default",
  ]
}
