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

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

component("platform") {
  sources = [
    # Allow this target to include events_export.h without depending on the
    # events target (which would be circular).
    "../events_export.h",
    "platform_event_builder.cc",
    "platform_event_builder.h",
    "platform_event_dispatcher.h",
    "platform_event_observer.h",
    "platform_event_source.cc",
    "platform_event_source.h",
    "platform_event_source_stub.cc",
    "platform_event_types.h",
    "scoped_event_dispatcher.cc",
    "scoped_event_dispatcher.h",
  ]

  defines = [ "EVENTS_IMPLEMENTATION" ]

  deps = [
    "//base",

    # TODO(erg): Figure out what to do with this dependency later. Maybe get to
    # the point where we can remove it before we commit this.
    "//ui/events",
  ]

  if (use_x11) {
    sources -= [ "platform_event_source_stub.cc" ]
  }
}
