# 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.
# this has to match the binary name in examples/ui/Build.gn

executable("yuv_to_image_pipe") {
  output_name = "yuv_to_image_pipe"

  sources = [
    "main.cc",
    "yuv_base_view.cc",
    "yuv_base_view.h",
    "yuv_cyclic_view.cc",
    "yuv_cyclic_view.h",
    "yuv_input_view.cc",
    "yuv_input_view.h",
  ]

  deps = [
    "//garnet/lib/ui/yuv",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/ui/base_view/cpp",
    "//garnet/public/lib/ui/scenic/cpp",
    "//sdk/fidl/fuchsia.ui.scenic",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/images/cpp",
    "//zircon/public/lib/async-cpp",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/fit",
    "//zircon/public/lib/fzl",
    "//zircon/public/lib/trace-provider",
  ]
}
