# 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_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",
  ]

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