# Copyright 2016 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("mediaplayer_skia_bin") {
  output_name = "mediaplayer_skia"

  sources = [
    "main.cc",
    "mediaplayer_params.cc",
    "mediaplayer_params.h",
    "mediaplayer_view.cc",
    "mediaplayer_view.h",
  ]

  deps = [
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/media/timeline",
    "//garnet/public/lib/ui/base_view/cpp",
    "//sdk/fidl/fuchsia.images",
    "//sdk/fidl/fuchsia.math",
    "//sdk/fidl/fuchsia.media",
    "//sdk/fidl/fuchsia.media.playback",
    "//sdk/fidl/fuchsia.ui.gfx",
    "//sdk/fidl/fuchsia.ui.input",
    "//sdk/fidl/fuchsia.ui.scenic",
    "//sdk/lib/ui/scenic/cpp",
    "//src/lib/url",
    "//third_party/skia",
    "//topaz/examples/ui/lib:skia_view",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/hid",
    "//zircon/public/lib/trace-provider",
  ]
}

package("mediaplayer_skia") {
  binaries = [
    {
      name = "mediaplayer_skia"
    },
  ]

  deps = [
    ":mediaplayer_skia_bin",
  ]

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