# 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.

executable("simplest_embedder") {
  output_name = "simplest_embedder"

  sources = [
    "example_presenter.cc",
    "example_presenter.h",
    "main.cc",
    "view.cc",
    "view.h",
  ]

  deps = [
    "//garnet/public/lib/fostr/fidl/fuchsia.ui.input",
    "//sdk/fidl/fuchsia.ui.input",
    "//sdk/fidl/fuchsia.ui.policy",
    "//sdk/fidl/fuchsia.ui.scenic",
    "//src/lib/fxl",
    "//src/lib/ui/base_view",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/async-loop-default",
    "//zircon/public/lib/zx",
  ]
}
