# 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("//mojo/public/mojo_application.gni")

mojo_native_application("ganesh_app") {
  sources = [
    "ganesh_app.cc",
    "ganesh_context.cc",
    "ganesh_context.h",
    "ganesh_texture.cc",
    "ganesh_texture.h",
    "ganesh_view.cc",
    "ganesh_view.h",
    "mojo_gl_context.cc",
    "mojo_gl_context.h",
    "texture_uploader.cc",
    "texture_uploader.h",
  ]

  deps = [
    "//base",
    "//gpu/command_buffer/client:gles2_interface",
    "//gpu/command_buffer/common",
    "//gpu/skia_bindings",
    "//mojo/application",
    "//mojo/common",
    "//mojo/converters/geometry",
    "//mojo/converters/surfaces",
    "//mojo/environment:chromium",
    "//mojo/public/c/system:for_shared_library",
    "//mojo/public/cpp/bindings",
    "//mojo/public/cpp/environment",
    "//mojo/public/cpp/system",
    "//mojo/public/cpp/utility",
    "//mojo/public/gles2:for_shared_library",
    "//mojo/services/public/cpp/surfaces",
    "//mojo/services/public/cpp/view_manager",
    "//mojo/services/public/interfaces/geometry",
    "//mojo/services/public/interfaces/gpu",
    "//mojo/services/public/interfaces/surfaces",
    "//mojo/services/public/interfaces/surfaces:surface_id",
    "//skia",
    "//ui/gfx",
    "//ui/gfx/geometry",
  ]
}
