blob: 93e07709a0fe3eff68c4806cc2a09a98f4473a38 [file] [log] [blame]
# 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_data_fetcher_mac.h",
"xbox_data_fetcher_mac.mm",
]
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",
]
}
}