# Copyright (c) 2013 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") assert(!is_ios) if (is_android) { import("//build/config/android/rules.gni") # For generate_jni(). } source_ids = "//third_party/usb_ids/usb.ids" generated_ids = "$target_gen_dir/usb_ids_gen.cc" source_set("usb") { sources = [ "android/usb_jni_registrar.cc", "android/usb_jni_registrar.h", "usb_configuration_android.cc", "usb_configuration_android.h", "usb_descriptors.cc", "usb_descriptors.h", "usb_device.cc", "usb_device.h", "usb_device_android.cc", "usb_device_android.h", "usb_device_filter.cc", "usb_device_filter.h", "usb_device_handle.cc", "usb_device_handle.h", "usb_endpoint_android.cc", "usb_endpoint_android.h", "usb_ids.cc", "usb_ids.h", "usb_interface_android.cc", "usb_interface_android.h", "usb_service.cc", "usb_service.h", "usb_service_android.cc", "usb_service_android.h", "webusb_descriptors.cc", "webusb_descriptors.h", generated_ids, ] deps = [ ":usb_device_ids", "//base", "//base/third_party/dynamic_annotations", "//components/device_event_log", "//device/core", "//net", ] if (use_udev) { deps += [ "//device/udev_linux" ] } if (is_android) { deps += [ ":jni_headers" ] } else { sources += [ "usb_context.cc", "usb_context.h", "usb_device_handle_impl.cc", "usb_device_handle_impl.h", "usb_device_impl.cc", "usb_device_impl.h", "usb_error.cc", "usb_error.h", "usb_service_impl.cc", "usb_service_impl.h", ] deps += [ "//third_party/libusb" ] } if (is_chromeos) { deps += [ "//chromeos", "//dbus", ] } } source_set("mocks") { testonly = true sources = [ "mock_usb_device.cc", "mock_usb_device.h", "mock_usb_device_handle.cc", "mock_usb_device_handle.h", "mock_usb_service.cc", "mock_usb_service.h", ] deps = [ ":usb", "//base", "//net", ] public_deps = [ "//testing/gmock", ] } action("usb_device_ids") { script = "//device/usb/tools/usb_ids.py" inputs = [ source_ids, ] outputs = [ generated_ids, ] args = [ "-i", rebase_path(source_ids, root_build_dir), "-o", rebase_path(generated_ids, root_build_dir), ] # Only the device_usb target can depend on us. visibility = [ ":usb" ] } if (is_android) { java_sources_needing_jni = [ "android/java/src/org/chromium/device/usb/ChromeUsbConfiguration.java", "android/java/src/org/chromium/device/usb/ChromeUsbDevice.java", "android/java/src/org/chromium/device/usb/ChromeUsbEndpoint.java", "android/java/src/org/chromium/device/usb/ChromeUsbInterface.java", "android/java/src/org/chromium/device/usb/ChromeUsbService.java", ] generate_jni("jni_headers") { sources = java_sources_needing_jni jni_package = "device" } java_cpp_enum("usb_descriptors_javagen") { sources = [ "usb_descriptors.h", ] } android_library("java") { java_files = java_sources_needing_jni deps = [ "//base:base_java", ] srcjar_deps = [ ":usb_descriptors_javagen" ] } }