# 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/package.gni")

source_set("camera_client") {
  sources = [
    "camera_client.cc",
    "camera_client.h",
  ]

  public_deps = [
    "//garnet/public/fidl/fuchsia.camera:fuchsia.camera",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fidl/cpp",
  ]
}

executable("bin") {
  output_name = "example_camera_client"

  sources = [
    "main.cc",
  ]

  deps = [
    ":camera_client",
    "//garnet/public/lib/svc/cpp",
    "//zircon/public/lib/async-default",
    "//zircon/public/lib/async-loop-cpp",
  ]
}

package("example_camera_client") {

  deps = [
    ":bin",
  ]

  binary = "example_camera_client"

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