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

fidl("skottie_loader") {
  name = "fuchsia.skia.skottie"

  sources = [
    "skottie_loader.fidl",
  ]

  public_deps = [
    "//zircon/public/fidl/fuchsia-mem",
  ]
}

executable("skottie_viewer") {
  output_name = "skottie_viewer"

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

  deps = [
    ":skottie_loader",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/ui/base_view/cpp",
    "//sdk/fidl/fuchsia.images",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/ui/scenic/cpp",
    "//third_party/skia/modules/skottie",
    "//topaz/examples/ui/lib:skia_view",
    "//zircon/public/fidl/fuchsia-mem",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/trace-provider",
  ]
}

package("package") {
  package_name = "skottie_viewer"

  deps = [
    ":skottie_viewer",
  ]

  binary = "skottie_viewer"

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