# 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/fidl/fidl.gni")
import("//build/package.gni")

executable("bin") {
  output_name = "display_capture_test"
  testonly = true
  sources = [
    "alpha_tests.cc",
    "basic_tests.cc",
    "context.cc",
    "context.h",
    "image.cc",
    "image.h",
    "layer.cc",
    "layer.h",
    "main.cc",
    "position_tests.cc",
    "runner.cc",
    "runner.h",
    "test.h",
  ]

  deps = [
    "//garnet/public/lib/fsl",
    "//src/camera/simple_camera/simple_camera_lib",
    "//zircon/public/fidl/fuchsia-hardware-camera:fuchsia-hardware-camera_c",
    "//zircon/public/fidl/fuchsia-hardware-display",
    "//zircon/public/fidl/fuchsia-hardware-display:fuchsia-hardware-display_c",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/fzl",
  ]
}

package("display_capture_test") {
  testonly = true

  deps = [
    ":bin",
  ]

  binary = "display_capture_test"

  meta = [
    {
      path = rebase_path("meta/display_capture_test.cmx")
      dest = "display_capture_test.cmx"
    },
  ]
}
