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

import("//build/config/jumbo.gni")
import("//build/config/ui.gni")
import("//ui/ozone/ozone.gni")

assert(use_x11 || ozone_platform_x11)

jumbo_component("x") {
  output_name = "ui_base_x"

  sources = [
    "ui_base_x_export.h",
    "x11_display_util.cc",
    "x11_display_util.h",
    "x11_menu_list.cc",
    "x11_menu_list.h",
    "x11_pointer_grab.cc",
    "x11_pointer_grab.h",
    "x11_util.cc",
    "x11_util.h",
    "x11_util_internal.h",
    "x11_window_event_manager.cc",
    "x11_window_event_manager.h",
  ]

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

  defines = [ "UI_BASE_X_IMPLEMENTATION" ]

  deps = [
    "//base",
    "//base:i18n",
    "//skia",
    "//ui/display/util",
    "//ui/events",
    "//ui/events/devices/x11",
    "//ui/events/keycodes:x11",
    "//ui/gfx",
    "//ui/gfx/x",
  ]
}
