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

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

  if (current_cpu == "x64") {
    sources = [
      "config.cc",
      "config.h",
      "control.cc",
      "control.h",
      "ktrace_controller.cc",
      "ktrace_controller.h",
      "main.cc",
      "utils.cc",
      "utils.h",
    ]
  } else {
    sources = [ "main.cc" ]
  }

  deps = [
    "//sdk/lib/sys/cpp",
    "//src/lib/debugger_utils",

    #"//src/lib/files",
    #"//src/lib/fsl",
    "//sdk/fidl/fuchsia.hardware.cpu.insntrace",
    "//sdk/fidl/fuchsia.tracing.kernel:fuchsia.tracing.kernel",
    "//src/lib/fxl",
    "//src/zircon/lib/zircon",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
    "//zircon/system/ulib/zircon-internal",
  ]
}

group("tests") {
  testonly = true

  deps = [ "tests" ]
}

install_host_tools("host_insntrace_print") {
  deps = [ "print:insntrace_print" ]
  outputs = [ "insntrace_print" ]
}

fuchsia_shell_package("insntrace") {
  manifest = "meta/insntrace.cmx"
  deps = [ ":bin" ]
}
