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

group("demo") {
  deps = [
    ":ozone_demo",
  ]
}

executable("ozone_demo") {
  sources = [
    "gl_renderer.cc",
    "gl_renderer.h",
    "ozone_demo.cc",
    "renderer.h",
    "renderer_base.cc",
    "renderer_base.h",
    "software_renderer.cc",
    "software_renderer.h",
    "surfaceless_gl_renderer.cc",
    "surfaceless_gl_renderer.h",
  ]

  deps = [
    "//base",
    "//skia",
    "//ui/events",
    "//ui/events:dom_keycode_converter",
    "//ui/events/ozone:events_ozone_layout",
    "//ui/gfx/geometry",
    "//ui/gl",
    "//ui/ozone",
    "//ui/ozone/gpu",
    "//ui/ozone:ozone_base",
    "//ui/display/types",
    "//ui/platform_window",
  ]
}
