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

executable("bin") {
  output_name = "ktrace_provider"

  sources = [
    "app.cc",
    "app.h",
    "importer.cc",
    "importer.h",
    "log_importer.cc",
    "log_importer.h",
    "main.cc",
    "reader.cc",
    "reader.h",
    "tags.cc",
    "tags.h",
  ]

  deps = [
    "//sdk/lib/sys/cpp",
    "//src/lib/fxl",
    "//zircon/public/fidl/fuchsia-tracing-kernel:fuchsia-tracing-kernel_c",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/fdio",
    "//zircon/public/lib/trace",
    "//zircon/public/lib/trace-provider",
    "//zircon/public/lib/zircon-internal",
  ]
}

package("ktrace_provider") {
  deps = [
    ":bin",
  ]

  binary = "ktrace_provider"

  meta = [
    {
      path = rebase_path("meta/ktrace_provider.cmx")
      dest = "ktrace_provider.cmx"
    },
  ]
}
