# 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/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 = [ "game_controller_data_fetcher_mac.h", "game_controller_data_fetcher_mac.mm", "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_monitor.cc", "gamepad_monitor.h", "gamepad_pad_state_provider.cc", "gamepad_pad_state_provider.h", "gamepad_platform_data_fetcher.h", "gamepad_platform_data_fetcher_android.cc", "gamepad_platform_data_fetcher_android.h", "gamepad_platform_data_fetcher_linux.cc", "gamepad_platform_data_fetcher_linux.h", "gamepad_platform_data_fetcher_mac.h", "gamepad_platform_data_fetcher_mac.mm", "gamepad_platform_data_fetcher_win.cc", "gamepad_platform_data_fetcher_win.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_standard_mappings_linux.cc", "gamepad_standard_mappings_mac.mm", "gamepad_standard_mappings_win.cc", "gamepad_user_gesture.cc", "gamepad_user_gesture.h", "raw_input_data_fetcher_win.cc", "raw_input_data_fetcher_win.h", "xbox_controller_mac.h", "xbox_controller_mac.mm", "xbox_data_fetcher_mac.cc", "xbox_data_fetcher_mac.h", ] deps = [ "//base", "//base/third_party/dynamic_annotations", "//device/base/synchronization", "//device/gamepad/public/cpp:shared_with_blink", "//device/gamepad/public/interfaces", "//mojo/public/cpp/system", "//third_party/WebKit/public:blink_headers", ] defines = [ "DEVICE_GAMEPAD_IMPLEMENTATION" ] if (is_win) { cflags = [ "/wd4267" ] # conversion from 'size_t' (64 bit) to 'type'(32 bit). } if (is_linux) { if (use_udev) { deps += [ "//device/udev_linux" ] } else { sources -= [ "gamepad_platform_data_fetcher_linux.cc" ] } } if (is_android) { deps += [ ":jni_headers" ] } if (is_mac) { libs = [ "CoreFoundation.framework", "Foundation.framework", "GameController.framework", "IOKit.framework", ] } } static_library("test_helpers") { testonly = true sources = [ "gamepad_test_helpers.cc", "gamepad_test_helpers.h", ] public_deps = [ ":gamepad", "//base", "//device/gamepad/public/cpp:shared_with_blink", "//third_party/WebKit/public:blink_headers", ] } if (is_android) { generate_jni("jni_headers") { sources = [ "android/java/src/org/chromium/device/gamepad/GamepadList.java", ] jni_package = "gamepad" } android_library("java") { java_files = [ "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", "//third_party/android_tools:android_support_annotations_java", ] srcjar_deps = [ ":java_enums_srcjar" ] } java_cpp_enum("java_enums_srcjar") { sources = [ "gamepad_standard_mappings.h", ] } }