| # Copyright 2014 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. |
| |
| assert(!is_android && !is_ios) |
| |
| import("//build/config/features.gni") |
| |
| config("libusb_config") { |
| include_dirs = [ "src/libusb" ] |
| } |
| |
| config("libusb_warnings") { |
| visibility = [ ":*" ] |
| if (is_clang) { |
| # guid_eq in windows_usb.c is unused. |
| cflags = [ "-Wno-unused-function" ] |
| if (is_linux && !use_udev) { |
| cflags += [ "-Wno-pointer-sign" ] |
| } |
| } |
| } |
| |
| static_library("libusb") { |
| sources = [ |
| "src/config.h", |
| "src/libusb/core.c", |
| "src/libusb/descriptor.c", |
| "src/libusb/hotplug.c", |
| "src/libusb/hotplug.h", |
| "src/libusb/interrupt.c", |
| "src/libusb/interrupt.h", |
| "src/libusb/io.c", |
| "src/libusb/libusb.h", |
| "src/libusb/libusbi.h", |
| "src/libusb/os/darwin_usb.c", |
| "src/libusb/os/darwin_usb.h", |
| "src/libusb/os/poll_posix.c", |
| "src/libusb/os/poll_posix.h", |
| "src/libusb/os/poll_windows.c", |
| "src/libusb/os/poll_windows.h", |
| "src/libusb/os/threads_posix.c", |
| "src/libusb/os/threads_posix.h", |
| "src/libusb/os/threads_windows.c", |
| "src/libusb/os/threads_windows.h", |
| "src/libusb/os/windows_common.h", |
| "src/libusb/os/windows_usb.c", |
| "src/libusb/os/windows_usb.h", |
| "src/libusb/strerror.c", |
| "src/libusb/sync.c", |
| "src/libusb/version.h", |
| "src/libusb/version_nano.h", |
| "src/msvc/config.h", |
| "src/msvc/inttypes.h", |
| "src/msvc/stdint.h", |
| ] |
| deps = [] |
| include_dirs = [ "src/libusb/os" ] |
| |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ |
| "//build/config/compiler:no_chromium_code", |
| |
| # Must be after no_chromium_code for warning flags to be ordered correctly. |
| ":libusb_warnings", |
| ] |
| |
| public_configs = [ ":libusb_config" ] |
| |
| if (is_posix) { |
| defines = [ |
| "DEFAULT_VISIBILITY=", |
| "HAVE_GETTIMEOFDAY=1", |
| "HAVE_POLL_H=1", |
| "HAVE_SYS_TIME_H=1", |
| "LIBUSB_DESCRIBE=\"1.0.16\"", |
| "POLL_NFDS_TYPE=nfds_t", |
| "THREADS_POSIX=1", |
| ] |
| } |
| |
| if (is_mac) { |
| defines += [ |
| "OS_DARWIN=1", |
| |
| # Needed on OSX 10.12 to silence a deprecation warning. |
| "OBJC_SILENCE_GC_DEPRECATIONS=1", |
| ] |
| } else { |
| sources -= [ |
| "src/libusb/os/darwin_usb.c", |
| "src/libusb/os/darwin_usb.h", |
| ] |
| } |
| |
| if (is_linux) { |
| sources += [ |
| "src/libusb/os/linux_usbfs.c", |
| "src/libusb/os/linux_usbfs.h", |
| ] |
| defines += [ |
| "OS_LINUX=1", |
| "_GNU_SOURCE=1", |
| ] |
| } |
| |
| if (is_chromeos) { |
| defines += [ "USBI_TIMERFD_AVAILABLE" ] |
| } |
| |
| if (use_udev) { |
| sources += [ "src/libusb/os/linux_udev.cc" ] |
| defines += [ |
| "HAVE_LIBUDEV=1", |
| "USE_UDEV=1", |
| ] |
| deps += [ "//build/linux/libudev" ] |
| } |
| |
| if (is_linux && !use_udev) { |
| sources += [ "src/libusb/os/linux_netlink.c" ] |
| defines += [ "HAVE_LINUX_NETLINK_H" ] |
| } |
| |
| if (is_win) { |
| include_dirs += [ "src/msvc" ] |
| sources -= [ |
| "src/libusb/os/poll_posix.c", |
| "src/libusb/os/threads_posix.c", |
| ] |
| libs = [ "setupapi.lib" ] |
| } else { |
| include_dirs += [ "src" ] |
| sources -= [ |
| "src/libusb/os/poll_windows.c", |
| "src/libusb/os/poll_windows.h", |
| "src/libusb/os/threads_windows.c", |
| "src/libusb/os/threads_windows.h", |
| "src/libusb/os/windows_common.h", |
| "src/libusb/os/windows_usb.c", |
| "src/libusb/os/windows_usb.h", |
| "src/msvc/config.h", |
| "src/msvc/inttypes.h", |
| "src/msvc/stdint.h", |
| ] |
| } |
| } |