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

# GYP version: mojo/mojo_converters.gypi:mojo_input_events_lib
component("input_events") {
  sources = [
    "input_events_type_converters.cc",
    "mojo_extended_key_event_data.cc",
    "mojo_extended_key_event_data.h",
    "mojo_input_events_export.h",
  ]

  defines = [
    "MOJO_INPUT_EVENTS_IMPLEMENTATION",
  ]

  deps = [
    "//base",
    "//ui/events",
    "//ui/gfx/geometry",
    "//mojo/converters/geometry",
    "//mojo/environment:chromium",
    "//mojo/public/c/system:for_component",
    "//mojo/services/public/interfaces/input_events",
    "//mojo/services/public/interfaces/geometry",
  ]
}
