| # 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/features.gni") |
| import("//build/config/jumbo.gni") |
| import("//build/config/ui.gni") |
| import("//testing/test.gni") |
| import("//ui/base/ui_features.gni") |
| import("//ui/ozone/ozone.gni") |
| |
| if (is_android) { |
| import("//build/config/android/rules.gni") |
| } |
| |
| if (is_ios) { |
| import("//ios/build/config.gni") |
| } |
| |
| if (is_android) { |
| if (!defined(keycode_conversion_data_android_path)) { |
| keycode_conversion_data_android_path = |
| "keycodes/dom/keycode_conversion_data_android.inc" |
| } |
| keycode_conversion_data_android_gen_path = "$target_gen_dir/keycodes/dom/keycode_conversion_data_android_generated.inc" |
| |
| copy("keycode_conversion_data_android") { |
| sources = [ |
| keycode_conversion_data_android_path, |
| ] |
| outputs = [ |
| keycode_conversion_data_android_gen_path, |
| ] |
| } |
| } |
| |
| jumbo_static_library("dom_keycode_converter") { |
| public = [ |
| "keycodes/dom/dom_code.h", |
| "keycodes/dom/dom_codes.h", |
| "keycodes/dom/dom_key.h", |
| "keycodes/dom/keycode_converter.h", |
| ] |
| |
| sources = [ |
| "keycodes/dom/dom_key_data.inc", |
| "keycodes/dom/keycode_converter.cc", |
| "keycodes/dom/keycode_converter_data.inc", |
| ] |
| |
| deps = [ |
| "//base", |
| ] |
| |
| if (!is_ios) { |
| deps += [ "//ipc:param_traits" ] |
| } |
| |
| if (is_android) { |
| sources += [ keycode_conversion_data_android_gen_path ] |
| |
| deps += [ ":keycode_conversion_data_android" ] |
| } |
| } |
| |
| static_library("dom_keyboard_layout") { |
| public = [ |
| "keycodes/dom/dom_keyboard_layout.h", |
| "keycodes/dom/dom_keyboard_layout_manager.h", |
| "keycodes/dom/dom_keyboard_layout_map.h", |
| ] |
| |
| sources = [ |
| "keycodes/dom/dom_keyboard_layout.cc", |
| "keycodes/dom/dom_keyboard_layout_manager.cc", |
| "keycodes/dom/dom_keyboard_layout_map_base.cc", |
| "keycodes/dom/dom_keyboard_layout_map_base.h", |
| ] |
| |
| # Make sure we don't compile two versions of dom_keyboard_layout_map* |
| if (is_mac) { |
| sources += [ "keycodes/dom/dom_keyboard_layout_map_mac.mm" ] |
| } else if (is_win) { |
| sources += [ "keycodes/dom/dom_keyboard_layout_map_win.cc" ] |
| } else { |
| sources += [ "keycodes/dom/dom_keyboard_layout_map_ozone.cc" ] |
| } |
| |
| deps = [ |
| ":dom_keycode_converter", |
| ":events_base", |
| "//base", |
| "//ui/events/ozone:events_ozone_layout", |
| ] |
| |
| if (!is_ios) { |
| deps += [ "//ipc:param_traits" ] |
| } |
| |
| # Expose the internals of this target to other packages in this BUILD file |
| # so the unit tests can access the private header files. |
| # Note: Only 'events_unittests' needs access in this file, however it uses a |
| # template which generates different target names on different platforms. |
| friend = [ ":*" ] |
| } |
| |
| source_set("event_constants") { |
| sources = [ |
| "event_constants.h", |
| ] |
| } |
| |
| source_set("platform_event") { |
| sources = [ |
| "platform_event.h", |
| ] |
| } |
| |
| jumbo_component("events_base") { |
| sources = [ |
| "base_event_utils.cc", |
| "base_event_utils.h", |
| "event_switches.cc", |
| "event_switches.h", |
| "events_base_export.h", |
| "fraction_of_time_without_user_input_recorder.cc", |
| "fraction_of_time_without_user_input_recorder.h", |
| "gesture_curve.h", |
| "gesture_event_details.cc", |
| "gesture_event_details.h", |
| "gestures/fixed_velocity_curve.cc", |
| "gestures/fixed_velocity_curve.h", |
| "gestures/fling_curve.cc", |
| "gestures/fling_curve.h", |
| "keycodes/dom_us_layout_data.h", |
| "keycodes/keyboard_code_conversion.cc", |
| "keycodes/keyboard_code_conversion.h", |
| "keycodes/keyboard_code_conversion_android.cc", |
| "keycodes/keyboard_code_conversion_android.h", |
| "keycodes/keyboard_code_conversion_mac.h", |
| "keycodes/keyboard_code_conversion_mac.mm", |
| "keycodes/keyboard_code_conversion_win.cc", |
| "keycodes/keyboard_code_conversion_win.h", |
| "keycodes/keyboard_codes.h", |
| "mobile_scroller.cc", |
| "mobile_scroller.h", |
| ] |
| |
| defines = [ "EVENTS_BASE_IMPLEMENTATION" ] |
| |
| deps = [ |
| ":dom_keycode_converter", |
| "//base/third_party/dynamic_annotations", |
| ] |
| |
| public_deps = [ |
| ":event_constants", |
| ":platform_event", |
| "//base", |
| "//ui/events/platform", |
| "//ui/gfx/geometry", |
| ] |
| |
| if (use_x11) { |
| public_deps += [ "//ui/events/keycodes:x11" ] |
| } |
| |
| if (!is_ios) { |
| deps += [ "//ipc:param_traits" ] |
| } |
| |
| if (is_mac) { |
| libs = [ |
| "AppKit.framework", |
| "Carbon.framework", |
| ] |
| } |
| |
| if (is_android) { |
| sources += [ keycode_conversion_data_android_gen_path ] |
| |
| deps += [ ":keycode_conversion_data_android" ] |
| } |
| } |
| |
| jumbo_component("events") { |
| public = [ |
| "cocoa/cocoa_event_utils.h", |
| "event.h", |
| "event_dispatcher.h", |
| "event_handler.h", |
| "event_modifiers.h", |
| "event_observer.h", |
| "event_processor.h", |
| "event_rewriter.h", |
| "event_sink.h", |
| "event_source.h", |
| "event_target.h", |
| "event_target_iterator.h", |
| "event_targeter.h", |
| "event_utils.h", |
| "events_export.h", |
| "gestures/gesture_recognizer.h", |
| "gestures/gesture_recognizer_impl_mac.h", |
| "gestures/gesture_recognizer_observer.h", |
| "gestures/gesture_types.h", |
| "keyboard_hook.h", |
| "null_event_targeter.h", |
| "scoped_target_handler.h", |
| "system_input_injector.h", |
| "win/events_win_utils.h", |
| "win/system_event_state_lookup.h", |
| ] |
| |
| sources = [ |
| "cocoa/cocoa_event_utils.mm", |
| "cocoa/events_mac.mm", |
| "event.cc", |
| "event_dispatcher.cc", |
| "event_handler.cc", |
| "event_modifiers.cc", |
| "event_processor.cc", |
| "event_rewriter.cc", |
| "event_rewriter_continuation.h", |
| "event_source.cc", |
| "event_target.cc", |
| "event_utils.cc", |
| "events_exports.cc", |
| "events_stub.cc", |
| "gestures/gesture_recognizer.cc", |
| "gestures/gesture_recognizer_impl_mac.cc", |
| "gestures/gesture_recognizer_observer.cc", |
| "gestures/gesture_types.cc", |
| "keyboard_hook_base.cc", |
| "keyboard_hook_base.h", |
| "keycodes/platform_key_map_win.cc", |
| "keycodes/platform_key_map_win.h", |
| "mac/keyboard_hook_mac.mm", |
| "null_event_targeter.cc", |
| "scoped_target_handler.cc", |
| "system_input_injector.cc", |
| "win/events_win.cc", |
| "win/events_win_utils.cc", |
| "win/keyboard_hook_win_base.cc", |
| "win/keyboard_hook_win_base.h", |
| "win/media_keyboard_hook_win.cc", |
| "win/modifier_keyboard_hook_win.cc", |
| "win/system_event_state_lookup.cc", |
| ] |
| |
| defines = [ "EVENTS_IMPLEMENTATION" ] |
| |
| public_deps = [ |
| ":events_base", |
| "//ui/display", |
| "//ui/latency", |
| ] |
| deps = [ |
| ":dom_keycode_converter", |
| ":gesture_detection", |
| "//base/third_party/dynamic_annotations", |
| "//skia", |
| "//ui/gfx", |
| "//ui/gfx/geometry", |
| ] |
| |
| # Expose the internals of this target to other packages in this BUILD file |
| # so the unit tests can access the private header files. |
| # Note: Only 'events_unittests' needs access in this file, however it uses a |
| # template which generates different target names on different platforms. |
| friend = [ ":*" ] |
| |
| if (use_x11) { |
| sources += [ |
| "x/events_x.cc", |
| "x/keyboard_hook_x11.cc", |
| ] |
| configs += [ "//build/config/linux:x11" ] |
| deps += [ |
| "//ui/events/devices", |
| "//ui/events/devices/x11", |
| "//ui/events/x", |
| "//ui/gfx/x", |
| ] |
| } |
| |
| if (use_glib) { |
| configs += [ "//build/config/linux:glib" ] |
| } |
| |
| if (use_ozone) { |
| sources += [ "events_default.cc" ] |
| } |
| |
| if (is_win && use_ozone) { |
| sources -= [ "win/events_win.cc" ] |
| } |
| |
| if (use_ozone) { |
| public += [ "ozone/events_ozone.h" ] |
| sources += [ |
| "ozone/events_ozone.cc", |
| "ozone/keyboard_hook_ozone.cc", |
| ] |
| deps += [ "//ui/events/ozone:events_ozone_layout" ] |
| } |
| |
| if (use_aura) { |
| public += [ |
| "gestures/gesture_provider_aura.h", |
| "gestures/gesture_recognizer_impl.h", |
| "gestures/motion_event_aura.h", |
| ] |
| sources += [ |
| "gestures/gesture_provider_aura.cc", |
| "gestures/gesture_recognizer_impl.cc", |
| "gestures/motion_event_aura.cc", |
| ] |
| } |
| |
| if (is_win || is_mac || use_x11 || use_ozone) { |
| sources -= [ "events_stub.cc" ] |
| } |
| |
| if (is_android) { |
| public += [ |
| "android/drag_event_android.h", |
| "android/event_handler_android.h", |
| "android/gesture_event_android.h", |
| "android/gesture_event_type.h", |
| "android/key_event_android.h", |
| "android/key_event_utils.h", |
| "android/motion_event_android.h", |
| ] |
| sources += [ |
| "android/drag_event_android.cc", |
| "android/event_handler_android.cc", |
| "android/gesture_event_android.cc", |
| "android/key_event_android.cc", |
| "android/key_event_utils.cc", |
| "android/keyboard_hook_android.cc", |
| "android/motion_event_android.cc", |
| ] |
| deps += [ |
| ":keyevent_jni_headers", |
| ":motionevent_jni_headers", |
| ] |
| } |
| |
| if (is_mac) { |
| libs = [ "AppKit.framework" ] |
| } |
| |
| if (is_fuchsia) { |
| public += [ |
| "fuchsia/input_event_dispatcher.h", |
| "fuchsia/input_event_dispatcher_delegate.h", |
| ] |
| sources += [ "fuchsia/input_event_dispatcher.cc" ] |
| public_deps += [ "//third_party/fuchsia-sdk/sdk:ui_input" ] |
| } |
| } |
| |
| jumbo_component("gesture_detection") { |
| sources = [ |
| "gesture_detection/bitset_32.h", |
| "gesture_detection/filtered_gesture_provider.cc", |
| "gesture_detection/filtered_gesture_provider.h", |
| "gesture_detection/gesture_configuration.cc", |
| "gesture_detection/gesture_configuration.h", |
| "gesture_detection/gesture_detection_export.h", |
| "gesture_detection/gesture_detector.cc", |
| "gesture_detection/gesture_detector.h", |
| "gesture_detection/gesture_event_data.cc", |
| "gesture_detection/gesture_event_data.h", |
| "gesture_detection/gesture_event_data_packet.cc", |
| "gesture_detection/gesture_event_data_packet.h", |
| "gesture_detection/gesture_listeners.cc", |
| "gesture_detection/gesture_listeners.h", |
| "gesture_detection/gesture_provider.cc", |
| "gesture_detection/gesture_provider.h", |
| "gesture_detection/gesture_provider_config_helper.cc", |
| "gesture_detection/gesture_provider_config_helper.h", |
| "gesture_detection/gesture_touch_uma_histogram.cc", |
| "gesture_detection/gesture_touch_uma_histogram.h", |
| "gesture_detection/motion_event.cc", |
| "gesture_detection/motion_event.h", |
| "gesture_detection/motion_event_buffer.cc", |
| "gesture_detection/motion_event_buffer.h", |
| "gesture_detection/motion_event_generic.cc", |
| "gesture_detection/motion_event_generic.h", |
| "gesture_detection/scale_gesture_detector.cc", |
| "gesture_detection/scale_gesture_detector.h", |
| "gesture_detection/scale_gesture_listeners.cc", |
| "gesture_detection/scale_gesture_listeners.h", |
| "gesture_detection/snap_scroll_controller.cc", |
| "gesture_detection/snap_scroll_controller.h", |
| "gesture_detection/touch_disposition_gesture_filter.cc", |
| "gesture_detection/touch_disposition_gesture_filter.h", |
| "gesture_detection/velocity_tracker.cc", |
| "gesture_detection/velocity_tracker.h", |
| "gesture_detection/velocity_tracker_state.cc", |
| "gesture_detection/velocity_tracker_state.h", |
| ] |
| |
| deps = [ |
| ":events_base", |
| "//base", |
| "//base/third_party/dynamic_annotations", |
| "//ui/display", |
| "//ui/gfx", |
| "//ui/gfx/geometry", |
| ] |
| |
| defines = [ "GESTURE_DETECTION_IMPLEMENTATION" ] |
| |
| if (is_android) { |
| sources += [ "gesture_detection/gesture_configuration_android.cc" ] |
| } else if (is_chromecast) { |
| sources += [ "gesture_detection/gesture_configuration_cast.cc" ] |
| } else if (use_aura) { |
| sources += [ "gesture_detection/gesture_configuration_aura.cc" ] |
| } else { |
| sources += [ "gesture_detection/gesture_configuration_default.cc" ] |
| } |
| } |
| |
| jumbo_static_library("test_support") { |
| sources = [ |
| "test/cocoa_test_event_utils.h", |
| "test/cocoa_test_event_utils.mm", |
| "test/event_generator.cc", |
| "test/event_generator.h", |
| "test/events_test_utils.cc", |
| "test/events_test_utils.h", |
| "test/keyboard_layout.cc", |
| "test/keyboard_layout.h", |
| "test/keyboard_layout_mac.cc", |
| "test/keyboard_layout_win.cc", |
| "test/motion_event_test_utils.cc", |
| "test/motion_event_test_utils.h", |
| "test/platform_event_source_test_api.cc", |
| "test/platform_event_source_test_api.h", |
| "test/platform_event_waiter.cc", |
| "test/platform_event_waiter.h", |
| "test/test_event_handler.cc", |
| "test/test_event_handler.h", |
| "test/test_event_processor.cc", |
| "test/test_event_processor.h", |
| "test/test_event_rewriter.cc", |
| "test/test_event_rewriter.h", |
| "test/test_event_source.cc", |
| "test/test_event_source.h", |
| "test/test_event_target.cc", |
| "test/test_event_target.h", |
| "test/test_event_targeter.cc", |
| "test/test_event_targeter.h", |
| ] |
| |
| public_deps = [ |
| ":dom_keycode_converter", |
| ":events", |
| ":events_base", |
| ":gesture_detection", |
| "//ui/events/devices", |
| ] |
| deps = [ |
| "//base", |
| "//skia", |
| "//ui/events/platform", |
| "//ui/gfx", |
| "//ui/gfx/geometry", |
| ] |
| |
| if (is_ios) { |
| sources -= [ |
| "test/cocoa_test_event_utils.h", |
| "test/cocoa_test_event_utils.mm", |
| ] |
| } |
| |
| if (is_mac) { |
| libs = [ "Carbon.framework" ] |
| } |
| |
| if (use_x11 || ozone_platform_x11) { |
| sources += [ |
| "test/events_test_utils_x11.cc", |
| "test/events_test_utils_x11.h", |
| ] |
| deps += [ |
| "//ui/events/devices/x11", |
| "//ui/events/keycodes:x11", |
| "//ui/gfx/x", |
| ] |
| } |
| |
| if (use_x11 || ozone_platform_x11) { |
| deps += [ "//ui/events/x" ] |
| } |
| } |
| |
| if (!is_ios) { |
| test("events_unittests") { |
| sources = [ |
| "blink/blink_event_util_unittest.cc", |
| "blink/fling_booster_unittest.cc", |
| "blink/input_handler_proxy_unittest.cc", |
| "blink/input_scroll_elasticity_controller_unittest.cc", |
| "blink/prediction/input_predictor_unittest_helpers.cc", |
| "blink/prediction/input_predictor_unittest_helpers.h", |
| "blink/prediction/kalman_predictor_unittest.cc", |
| "blink/prediction/least_squares_predictor_unittest.cc", |
| "blink/scroll_predictor_unittest.cc", |
| "blink/web_input_event_traits_unittest.cc", |
| "blink/web_input_event_unittest.cc", |
| "cocoa/events_mac_unittest.mm", |
| "devices/mojo/device_struct_traits_unittest.cc", |
| "devices/mojo/touch_device_transform_struct_traits_unittest.cc", |
| "event_dispatcher_unittest.cc", |
| "event_processor_unittest.cc", |
| "event_rewriter_unittest.cc", |
| "event_target_unittest.cc", |
| "event_unittest.cc", |
| "fraction_of_time_without_user_input_recorder_unittest.cc", |
| "gesture_detection/bitset_32_unittest.cc", |
| "gesture_detection/filtered_gesture_provider_unittest.cc", |
| "gesture_detection/gesture_event_data_packet_unittest.cc", |
| "gesture_detection/gesture_provider_unittest.cc", |
| "gesture_detection/motion_event_buffer_unittest.cc", |
| "gesture_detection/motion_event_generic_unittest.cc", |
| "gesture_detection/snap_scroll_controller_unittest.cc", |
| "gesture_detection/touch_disposition_gesture_filter_unittest.cc", |
| "gesture_detection/velocity_tracker_unittest.cc", |
| "gestures/blink/web_gesture_curve_impl_unittest.cc", |
| "gestures/fling_curve_unittest.cc", |
| "keycodes/dom/dom_keyboard_layout_map_unittest.cc", |
| "keycodes/dom/keycode_converter_unittest.cc", |
| "keycodes/keyboard_code_conversion_unittest.cc", |
| "keycodes/platform_key_map_win_unittest.cc", |
| "mobile_scroller_unittest.cc", |
| "mojo/struct_traits_unittest.cc", |
| "platform/platform_event_source_unittest.cc", |
| "scoped_target_handler_unittest.cc", |
| "win/event_utils_win_unittest.cc", |
| "win/media_keyboard_hook_win_unittest.cc", |
| "win/modifier_keyboard_hook_win_unittest.cc", |
| ] |
| |
| deps = [ |
| ":dom_keyboard_layout", |
| ":dom_keycode_converter", |
| ":events", |
| ":events_base", |
| ":gesture_detection", |
| ":test_support", |
| "//base", |
| "//base/test:test_support", |
| "//cc", |
| "//ipc:test_support", |
| "//mojo/core/test:run_all_unittests", |
| "//mojo/public/cpp/bindings", |
| "//mojo/public/cpp/test_support:test_utils", |
| "//skia", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//third_party/blink/public:blink_headers", |
| "//ui/base:test_support", |
| "//ui/display", |
| "//ui/events/blink", |
| "//ui/events/devices", |
| "//ui/events/devices/mojo:test_interfaces", |
| "//ui/events/gestures/blink", |
| "//ui/events/platform", |
| "//ui/gfx/geometry/mojo:struct_traits", |
| "//ui/gfx/ipc/geometry", |
| ] |
| |
| if (is_android) { |
| sources += [ "android/motion_event_android_unittest.cc" ] |
| } else { |
| data_deps = [ |
| "//third_party/mesa_headers", |
| ] |
| } |
| |
| if (use_x11) { |
| sources += [ |
| "devices/x11/device_data_manager_x11_unittest.cc", |
| "x/events_x_unittest.cc", |
| ] |
| configs += [ "//build/config/linux:x11" ] |
| deps += [ |
| "//ui/events/devices/x11", |
| "//ui/events/x", |
| "//ui/gfx/x", |
| ] |
| } |
| |
| if (use_x11 || use_ozone) { |
| sources += [ "devices/device_data_manager_unittest.cc" ] |
| } |
| |
| if (use_ozone && (is_linux || is_chromeos)) { |
| sources += [ |
| "ozone/chromeos/cursor_controller_unittest.cc", |
| "ozone/evdev/event_converter_evdev_impl_unittest.cc", |
| "ozone/evdev/event_converter_test_util.cc", |
| "ozone/evdev/event_converter_test_util.h", |
| "ozone/evdev/event_device_info_unittest.cc", |
| "ozone/evdev/event_device_test_util.cc", |
| "ozone/evdev/event_device_test_util.h", |
| "ozone/evdev/gamepad_event_converter_evdev_unittest.cc", |
| "ozone/evdev/input_injector_evdev_unittest.cc", |
| "ozone/evdev/tablet_event_converter_evdev_unittest.cc", |
| "ozone/evdev/touch_event_converter_evdev_unittest.cc", |
| "ozone/evdev/touch_filter/false_touch_finder_unittest.cc", |
| "ozone/gamepad/generic_gamepad_mapping_unittest.cc", |
| ] |
| |
| if (use_xkbcommon) { |
| sources += [ |
| "ozone/layout/keyboard_layout_engine_unittest.cc", |
| "ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc", |
| ] |
| } |
| |
| deps += [ |
| "//ui/events/ozone:events_ozone", |
| "//ui/events/ozone:events_ozone_evdev", |
| "//ui/events/ozone:events_ozone_layout", |
| ] |
| } |
| |
| if (use_aura) { |
| sources += [ |
| "gestures/gesture_provider_aura_unittest.cc", |
| "gestures/gesture_recognizer_impl_unittest.cc", |
| "gestures/motion_event_aura_unittest.cc", |
| ] |
| } |
| |
| if (is_win) { |
| sources += [ "blink/web_input_event_builders_win_unittest.cc" ] |
| } |
| |
| if (is_chromecast && !is_android) { |
| sources += [ "chromecast/scroller_unittest.cc" ] |
| } |
| |
| if (is_fuchsia) { |
| sources += [ "fuchsia/input_event_dispatcher_unittest.cc" ] |
| deps += [ "//third_party/fuchsia-sdk/sdk:ui_input" ] |
| } |
| } |
| } |
| |
| if (is_android) { |
| generate_jar_jni("motionevent_jni_headers") { |
| jni_package = "ui" |
| classes = [ "android/view/MotionEvent.class" ] |
| } |
| |
| generate_jar_jni("keyevent_jni_headers") { |
| jni_package = "ui" |
| classes = [ "android/view/KeyEvent.class" ] |
| } |
| } |
| |
| # This target is added as a dependency of browser interactive_ui_tests. It must |
| # be source_set, otherwise the linker will drop the tests as dead code. |
| source_set("events_interactive_ui_tests") { |
| testonly = true |
| if (is_win) { |
| sources = [ |
| "win/media_keyboard_hook_win_interactive_test.cc", |
| ] |
| |
| deps = [ |
| ":events", |
| ":test_support", |
| "//base/test:test_support", |
| "//testing/gtest", |
| ] |
| } |
| } |