# Copyright 2018 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/host.gni")

# TODO(dje): At the moment it only runs on linux or macos.

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

  deps = [
    "//garnet/bin/cpuperf:session_result_spec",
    "//garnet/lib/cpuperf",
    "//garnet/lib/debugger_utils",
    "//garnet/public/lib/fxl",
  ]
}

install_host_tools("host_cpuperf_print") {
  deps = [
    ":cpuperf_print",
  ]

  outputs = [
    "cpuperf_print",
  ]
}
