# 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"
      } ]
}
