# Copyright 2019 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")

package("gfxlatency") {
  deps = [
    ":gfxlatency_executable",
  ]
  binary = "gfxlatency"
  meta = [
    {
      path = rebase_path("meta/gfxlatency.cmx")
      dest = "gfxlatency.cmx"
    },
  ]
}
executable("gfxlatency_executable") {
  output_name = "gfxlatency"
  sources = [
    "main.cpp",
  ]
  deps = [
    "//zircon/public/fidl/fuchsia-hardware-display:fuchsia-hardware-display_c",
    "//zircon/public/fidl/fuchsia-hardware-input:fuchsia-hardware-input_c",
    "//zircon/public/lib/async-cpp",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/fdio",
    "//zircon/public/lib/fidl",
    "//zircon/public/lib/fzl",
    "//zircon/public/lib/gfx",
    "//zircon/public/lib/hid",
    "//zircon/public/lib/trace",
    "//zircon/public/lib/trace-engine",
    "//zircon/public/lib/trace-provider",
    "//zircon/public/lib/zx",
  ]
}
