123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- # Copyright 2016 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/chromeos/ui_mode.gni")
- import("//build/config/features.gni")
- if (is_android) {
- import("//build/config/android/config.gni")
- import("//build/config/android/rules.gni") # For generate_jni().
- }
- component("gamepad") {
- output_name = "device_gamepad"
- sources = [
- "abstract_haptic_gamepad.cc",
- "abstract_haptic_gamepad.h",
- "dualshock4_controller.cc",
- "dualshock4_controller.h",
- "gamepad_blocklist.cc",
- "gamepad_blocklist.h",
- "gamepad_consumer.cc",
- "gamepad_consumer.h",
- "gamepad_data_fetcher.cc",
- "gamepad_data_fetcher.h",
- "gamepad_data_fetcher_manager.cc",
- "gamepad_data_fetcher_manager.h",
- "gamepad_export.h",
- "gamepad_haptics_manager.cc",
- "gamepad_haptics_manager.h",
- "gamepad_id_list.cc",
- "gamepad_id_list.h",
- "gamepad_monitor.cc",
- "gamepad_monitor.h",
- "gamepad_pad_state_provider.cc",
- "gamepad_pad_state_provider.h",
- "gamepad_platform_data_fetcher.h",
- "gamepad_provider.cc",
- "gamepad_provider.h",
- "gamepad_service.cc",
- "gamepad_service.h",
- "gamepad_shared_buffer.cc",
- "gamepad_shared_buffer.h",
- "gamepad_standard_mappings.cc",
- "gamepad_standard_mappings.h",
- "gamepad_uma.cc",
- "gamepad_uma.h",
- "gamepad_user_gesture.cc",
- "gamepad_user_gesture.h",
- "hid_haptic_gamepad.cc",
- "hid_haptic_gamepad.h",
- "hid_writer.h",
- "xbox_hid_controller.cc",
- "xbox_hid_controller.h",
- ]
- deps = [
- "//base",
- "//base/third_party/dynamic_annotations",
- "//device/base/synchronization",
- "//device/gamepad/public/cpp:shared_with_blink",
- "//device/gamepad/public/cpp:switches",
- "//device/gamepad/public/mojom",
- "//mojo/public/cpp/system",
- "//third_party/blink/public:blink_headers",
- ]
- public_deps = [ "//services/device/public/mojom" ]
- defines = [ "DEVICE_GAMEPAD_IMPLEMENTATION" ]
- if (is_win) {
- sources += [
- "gamepad_standard_mappings_win.cc",
- "hid_writer_win.cc",
- "hid_writer_win.h",
- "raw_input_data_fetcher_win.cc",
- "raw_input_data_fetcher_win.h",
- "raw_input_gamepad_device_win.cc",
- "raw_input_gamepad_device_win.h",
- "wgi_data_fetcher_win.cc",
- "wgi_data_fetcher_win.h",
- "wgi_gamepad_device.cc",
- "wgi_gamepad_device.h",
- "xinput_data_fetcher_win.cc",
- "xinput_data_fetcher_win.h",
- "xinput_haptic_gamepad_win.cc",
- "xinput_haptic_gamepad_win.h",
- ]
- deps += [ "//device/base" ]
- libs = [ "hid.lib" ]
- }
- if (is_linux || is_chromeos) {
- sources += [
- "gamepad_standard_mappings_linux.cc",
- "hid_writer_linux.cc",
- "hid_writer_linux.h",
- ]
- if (use_udev) {
- sources += [
- "gamepad_device_linux.cc",
- "gamepad_device_linux.h",
- "gamepad_platform_data_fetcher_linux.cc",
- "gamepad_platform_data_fetcher_linux.h",
- "udev_gamepad_linux.cc",
- "udev_gamepad_linux.h",
- ]
- deps += [
- "//build:chromeos_buildflags",
- "//device/udev_linux",
- ]
- }
- }
- if (is_android) {
- sources += [
- "gamepad_platform_data_fetcher_android.cc",
- "gamepad_platform_data_fetcher_android.h",
- "haptic_gamepad_android.cc",
- "haptic_gamepad_android.h",
- ]
- deps += [ ":jni_headers" ]
- }
- if (!is_android && !is_fuchsia) {
- sources += [
- "nintendo_controller.cc",
- "nintendo_controller.h",
- "nintendo_data_fetcher.cc",
- "nintendo_data_fetcher.h",
- ]
- }
- if (is_mac) {
- sources += [
- "game_controller_data_fetcher_mac.h",
- "game_controller_data_fetcher_mac.mm",
- "gamepad_device_mac.h",
- "gamepad_device_mac.mm",
- "gamepad_platform_data_fetcher_mac.h",
- "gamepad_platform_data_fetcher_mac.mm",
- "gamepad_standard_mappings_mac.mm",
- "hid_writer_mac.cc",
- "hid_writer_mac.h",
- "xbox_controller_mac.h",
- "xbox_controller_mac.mm",
- "xbox_data_fetcher_mac.cc",
- "xbox_data_fetcher_mac.h",
- ]
- frameworks = [
- "CoreFoundation.framework",
- "Foundation.framework",
- "ForceFeedback.framework",
- "GameController.framework",
- "IOKit.framework",
- ]
- }
- if (is_chromeos) {
- deps += [ "//chromeos/dbus/permission_broker" ]
- }
- }
- static_library("test_helpers") {
- testonly = true
- sources = [
- "gamepad_test_helpers.cc",
- "gamepad_test_helpers.h",
- ]
- public_deps = [
- ":gamepad",
- "//base",
- "//base/test:test_support",
- "//device/gamepad/public/cpp:shared_with_blink",
- "//third_party/blink/public:blink_headers",
- ]
- if (is_win) {
- sources += [
- "test_support/fake_igamepad.cc",
- "test_support/fake_igamepad.h",
- "test_support/fake_igamepad_statics.cc",
- "test_support/fake_igamepad_statics.h",
- "test_support/fake_iraw_game_controller.cc",
- "test_support/fake_iraw_game_controller.h",
- "test_support/fake_winrt_wgi_environment.cc",
- "test_support/fake_winrt_wgi_environment.h",
- ]
- }
- }
- if (is_android) {
- generate_jni("jni_headers") {
- sources =
- [ "android/java/src/org/chromium/device/gamepad/GamepadList.java" ]
- }
- android_library("java") {
- sources = [
- "android/java/src/org/chromium/device/gamepad/GamepadDevice.java",
- "android/java/src/org/chromium/device/gamepad/GamepadList.java",
- "android/java/src/org/chromium/device/gamepad/GamepadMappings.java",
- ]
- deps = [
- "//base:base_java",
- "//base:jni_java",
- "//build/android:build_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- ]
- annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
- srcjar_deps = [ ":java_enums_srcjar" ]
- }
- java_cpp_enum("java_enums_srcjar") {
- sources = [ "gamepad_standard_mappings.h" ]
- }
- }
|