# 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")

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

  sources = [
    "main.cc",
  ]

  deps = [
    "//garnet/public/lib/fsl",
    "//sdk/fidl/fuchsia.developer.tiles",
    "//sdk/fidl/fuchsia.ui.gfx",
    "//sdk/lib/sys/cpp",
    "//src/lib/fxl",
    "//zircon/public/lib/fdio",
  ]
}

package("tiles_ctl") {
  deps = [
    ":bin",
  ]

  meta = [
    {
      path = "meta/tiles_ctl.cmx"
      dest = "tiles_ctl.cmx"
    },
  ]

  binaries = [
    {
      shell = true
      name = "tiles_ctl"
    },
  ]
}
