# 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.

# GYP version: mojo/mojo.gyp:mojo_aura_support
source_set("aura") {
  sources = [
    "aura_init.cc",
    "aura_init.h",
    "screen_mojo.cc",
    "screen_mojo.h",
    "surface_binding.cc",
    "surface_binding.h",
    "surface_context_factory.cc",
    "surface_context_factory.h",
    "window_tree_host_mojo.cc",
    "window_tree_host_mojo.h",
  ]

  public_deps = [
    "//mojo/services/public/cpp/view_manager",
  ]
  deps = [
    "//cc",
    "//skia",
    "//ui/aura",
    "//ui/compositor",
    "//ui/events",
    "//ui/events:events_base",
    "//ui/gl",
    "//mojo/cc",
    "//mojo/converters/geometry",
    "//mojo/converters/surfaces",
    "//mojo/public/cpp/application",
    "//mojo/public/gles2:for_shared_library",
    "//mojo/public/interfaces/application:application",
    "//mojo/services/public/cpp/view_manager",
    "//mojo/services/public/interfaces/gpu",
    "//mojo/services/public/interfaces/native_viewport",
    "//mojo/services/public/interfaces/surfaces",
  ]
}
