# Copyright 2017 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.

group("print") {
  testonly = true
  deps = [
    ":insntrace_print",
    "third_party",
  ]
}

# Note: insntrace_print can run on the build host (e.g., linux or macos).
# TODO(dje): At the moment it only runs on linux or macos.

executable("insntrace_print") {
  sources = [
    "command_line_settings.cc",
    "command_line_settings.h",
    "main.cc",
    "printer_config.h",
    "raw_printer.cc",
    "raw_printer.h",
  ]

  deps = [
    "third_party/simple-pt:printer",
    "//garnet/lib/debugger_utils",
    "//garnet/lib/intel_pt_decode",
    "//src/lib/fxl",
    "//third_party/processor-trace/libipt",
  ]

  if (is_linux) {
    libs = [ "pthread" ]
  }

  if (!is_fuchsia) {
    deps += [ "//zircon/system/public" ]
  }
}
