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

visibility = [ "//ui/ozone/*" ]

source_set("x11") {
  sources = [
    "client_native_pixmap_factory_x11.cc",
    "client_native_pixmap_factory_x11.h",
    "native_display_delegate_ozone_x11.cc",
    "native_display_delegate_ozone_x11.h",
    "ozone_platform_x11.cc",
    "ozone_platform_x11.h",
    "x11_cursor_factory_ozone.cc",
    "x11_cursor_factory_ozone.h",
    "x11_surface_factory.cc",
    "x11_surface_factory.h",
  ]

  deps = [
    "//base",
    "//skia",
    "//ui/base",
    "//ui/display/types",
    "//ui/display/util",
    "//ui/events",
    "//ui/events/devices",
    "//ui/events/ozone:events_ozone",
    "//ui/events/platform",
    "//ui/events/platform/x11",
    "//ui/events/x",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/gfx/x",
    "//ui/ozone:ozone_base",
    "//ui/ozone/common",
    "//ui/platform_window",
    "//ui/platform_window/x11",
  ]

  configs += [ "//build/config/linux:x11" ]

  public_configs = [ "//third_party/khronos:khronos_headers" ]
}
