# 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/config.gni")
import("//build/package.gni")

source_set("metrics") {
  sources = [
    "capture.cc",
    "capture.h",
    "digest.cc",
    "digest.h",
    "printer.cc",
    "printer.h",
    "summary.cc",
    "summary.h",
    "watcher.cc",
    "watcher.h",
  ]

  public_deps = [ "//sdk/fidl/fuchsia.kernel:fuchsia.kernel_llcpp" ]

  deps = [
    "//sdk/fidl/fuchsia.kernel:fuchsia.kernel_c",
    "//src/lib/fsl",
    "//src/lib/fxl",
    "//third_party/rapidjson",
    "//zircon/system/ulib/task-utils",
    "//zircon/system/ulib/trace",
  ]

  # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
  public_configs = [ "//build/config:Wno-conversion" ]
}
