123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- # 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/chromeos/ui_mode.gni")
- import("//build/config/features.gni")
- import("//testing/libfuzzer/fuzzer_test.gni")
- assert(!is_ios)
- if (is_android) {
- import("//build/config/android/rules.gni") # For generate_jni().
- }
- if (is_win) {
- config("usb_linker_flags") {
- ldflags = [
- "/DELAYLOAD:advapi32.dll",
- "/DELAYLOAD:cfgmgr32.dll",
- "/DELAYLOAD:ole32.dll",
- "/DELAYLOAD:setupapi.dll",
- "/DELAYLOAD:winusb.dll",
- ]
- }
- }
- static_library("usb") {
- # Only targets under //services/device folder can depend on it.
- visibility = [
- ":*",
- "//services/device:*",
- "//services/device/usb/mojo:*",
- ]
- sources = [
- "usb_descriptors.cc",
- "usb_descriptors.h",
- "usb_device.cc",
- "usb_device.h",
- "usb_device_handle.cc",
- "usb_device_handle.h",
- "usb_service.cc",
- "usb_service.h",
- "webusb_descriptors.cc",
- "webusb_descriptors.h",
- ]
- deps = [
- "//base/third_party/dynamic_annotations",
- "//build:chromeos_buildflags",
- "//components/device_event_log",
- "//device/base",
- "//services/device:utility",
- "//services/device/public/cpp/usb",
- "//services/device/public/mojom:usb",
- ]
- public_deps = [
- "//base",
- "//url",
- ]
- if (is_android) {
- sources += [
- "usb_configuration_android.cc",
- "usb_configuration_android.h",
- "usb_device_android.cc",
- "usb_device_android.h",
- "usb_device_handle_android.cc",
- "usb_device_handle_android.h",
- "usb_endpoint_android.cc",
- "usb_endpoint_android.h",
- "usb_interface_android.cc",
- "usb_interface_android.h",
- "usb_service_android.cc",
- "usb_service_android.h",
- ]
- deps += [ ":jni_headers" ]
- }
- if (is_win) {
- sources += [
- "scoped_winusb_handle.cc",
- "scoped_winusb_handle.h",
- "usb_device_handle_win.cc",
- "usb_device_handle_win.h",
- "usb_device_win.cc",
- "usb_device_win.h",
- "usb_service_win.cc",
- "usb_service_win.h",
- ]
- libs = [
- "advapi32.lib",
- "ole32.lib",
- "setupapi.lib",
- "winusb.lib",
- ]
- all_dependent_configs = [ ":usb_linker_flags" ]
- deps += [ "//third_party/re2" ]
- }
- if (is_mac) {
- sources += [
- "usb_device_handle_mac.cc",
- "usb_device_handle_mac.h",
- "usb_device_mac.cc",
- "usb_device_mac.h",
- "usb_service_mac.cc",
- "usb_service_mac.h",
- ]
- # These sources and deps are required for libusb.
- # TODO(https://crbug.com/1096743) Remove these sources.
- sources += [
- "scoped_libusb_device_handle.cc",
- "scoped_libusb_device_handle.h",
- "scoped_libusb_device_ref.cc",
- "scoped_libusb_device_ref.h",
- "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_linux || is_chromeos) {
- sources += [
- "usb_device_linux.cc",
- "usb_device_linux.h",
- ]
- }
- if (use_udev) {
- if (is_linux || is_chromeos) {
- sources += [
- "usb_service_linux.cc",
- "usb_service_linux.h",
- ]
- }
- deps += [ "//device/udev_linux" ]
- }
- if (is_android || is_chromeos || is_linux) {
- sources += [
- "usb_device_handle_usbfs.cc",
- "usb_device_handle_usbfs.h",
- ]
- }
- if (is_chromeos) {
- deps += [
- "//chromeos/dbus/permission_broker",
- "//dbus",
- ]
- }
- }
- static_library("test_support") {
- testonly = true
- sources = [
- "fake_usb_device_handle.cc",
- "fake_usb_device_handle.h",
- "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",
- "//testing/gtest",
- ]
- public_deps = [ "//testing/gmock" ]
- }
- fuzzer_test("webusb_descriptors_fuzzer") {
- sources = [ "webusb_descriptors_fuzzer.cc" ]
- deps = [
- ":test_support",
- ":usb",
- "//base",
- "//base:i18n",
- ]
- seed_corpus = "fuzz_corpus"
- libfuzzer_options = [ "max_len=2048" ]
- }
- fuzzer_test("usb_descriptors_fuzzer") {
- sources = [ "usb_descriptors_fuzzer.cc" ]
- deps = [
- ":usb",
- "//mojo/public/cpp/bindings",
- "//services/device/public/mojom:usb",
- "//services/device/usb/mojo",
- ]
- seed_corpus = "fuzz_corpus"
- libfuzzer_options = [ "max_len=2048" ]
- }
- fuzzer_test("usb_string_read_fuzzer") {
- sources = [ "usb_string_read_fuzzer.cc" ]
- deps = [
- ":test_support",
- ":usb",
- "//base",
- ]
- seed_corpus = "fuzz_corpus"
- libfuzzer_options = [ "max_len=2048" ]
- }
- if (is_android) {
- java_sources_needing_jni = [
- "android/java/src/org/chromium/device/usb/ChromeUsbConfiguration.java",
- "android/java/src/org/chromium/device/usb/ChromeUsbConnection.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
- }
- android_library("java") {
- sources = java_sources_needing_jni
- 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" ]
- }
- }
|