# 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 = [
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fxl",
    "//zircon/public/lib/async-loop-cpp",
    "//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"
      } ]
}
