# 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("jank") {
  output_name = "jank_view"

  sources = [
    "jank_view.cc",
    "jank_view.h",
    "main.cc",
  ]

  deps = [
    "//garnet/public/fidl/fuchsia.ui.app",
    "//garnet/public/fidl/fuchsia.ui.scenic",
    "//garnet/public/fidl/fuchsia.ui.viewsv1",
    "//garnet/public/lib/fidl/cpp",
    "//garnet/public/lib/fxl",
    "//garnet/public/lib/ui/base_view/cpp",
    "//third_party/skia",
    "//topaz/examples/ui/lib:skia_fonts",
    "//topaz/examples/ui/lib:skia_view",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/trace-provider",
  ]
}

package("package") {
  deprecated_system_image = true
  package_name = "jank"

  deps = [
    ":jank",
  ]

  binaries = [
    {
      name = "jank_view"
    },
  ]
}
