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

component("x11") {
  output_name = "x11_events_platform"

  sources = [
    "x11_event_source.cc",
    "x11_event_source.h",
    "x11_event_source_glib.cc",
    "x11_event_source_libevent.cc",
  ]

  defines = [ "EVENTS_IMPLEMENTATION" ]

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

  public_deps = [
    "//ui/events",
    "//ui/events:events_base",
    "//ui/events/platform",
    "//ui/gfx/x",
  ]

  if (is_linux) {
    sources -= [ "x11_event_source_libevent.cc" ]

    configs += [ "//build/config/linux:glib" ]
  } else {
    sources -= [ "x11_event_source_glib.cc" ]
  }
}
