# Copyright 2014 The Chromium 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/config/ui.gni")
import("//mojo/public/mojo_application.gni")
import("//mojo/public/tools/bindings/mojom.gni")

if (use_aura) {
  mojo_native_application("media_viewer") {
    sources = [
      "media_viewer.cc",
    ]

    deps = [
      ":bindings",
      "//base",
      "//mojo/application",
      "//mojo/converters/input_events",
      "//mojo/services/navigation/public/interfaces",
      "//mojo/services/view_manager/public/cpp",
      "//mojo/services/view_manager/public/interfaces",
      "//mojo/views:views",
      "//skia",
      "//ui/gfx",
      "//ui/gfx/geometry",
      "//ui/views",
    ]
  }
}  # use_aura

mojom("bindings") {
  sources = [
    "media_viewer.mojom",
  ]
}
