Browse Source
Merge pull request #4584 from lioncash/libusb
Merge pull request #4584 from lioncash/libusb
externals: Track upstream libusb directlypull/15/merge
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 241 additions and 4 deletions
-
6.gitmodules
-
1externals/libusb
-
147externals/libusb/CMakeLists.txt
-
90externals/libusb/config.h.in
-
1externals/libusb/libusb
@ -0,0 +1,147 @@ |
|||
add_library(usb STATIC EXCLUDE_FROM_ALL |
|||
libusb/libusb/core.c |
|||
libusb/libusb/core.c |
|||
libusb/libusb/descriptor.c |
|||
libusb/libusb/hotplug.c |
|||
libusb/libusb/io.c |
|||
libusb/libusb/strerror.c |
|||
libusb/libusb/sync.c |
|||
) |
|||
set_target_properties(usb PROPERTIES VERSION 1.0.23) |
|||
if(WIN32) |
|||
target_include_directories(usb |
|||
BEFORE |
|||
PUBLIC |
|||
libusb/libusb |
|||
|
|||
PRIVATE |
|||
"${CMAKE_CURRENT_BINARY_DIR}" |
|||
) |
|||
|
|||
if (NOT MINGW) |
|||
target_include_directories(usb BEFORE PRIVATE libusb/msvc) |
|||
endif() |
|||
else() |
|||
target_include_directories(usb |
|||
# turns out other projects also have "config.h", so make sure the |
|||
# LibUSB one comes first |
|||
BEFORE |
|||
|
|||
PUBLIC |
|||
libusb/libusb |
|||
|
|||
PRIVATE |
|||
"${CMAKE_CURRENT_BINARY_DIR}" |
|||
) |
|||
endif() |
|||
|
|||
if(WIN32 OR CYGWIN) |
|||
target_sources(usb PRIVATE |
|||
libusb/libusb/os/threads_windows.c |
|||
libusb/libusb/os/windows_winusb.c |
|||
libusb/libusb/os/windows_usbdk.c |
|||
libusb/libusb/os/windows_nt_common.c |
|||
) |
|||
set(OS_WINDOWS TRUE) |
|||
elseif(APPLE) |
|||
target_sources(usb PRIVATE |
|||
libusb/libusb/os/darwin_usb.c |
|||
) |
|||
find_library(COREFOUNDATION_LIBRARY CoreFoundation) |
|||
find_library(IOKIT_LIBRARY IOKit) |
|||
find_library(OBJC_LIBRARY objc) |
|||
target_link_libraries(usb PRIVATE |
|||
${COREFOUNDATION_LIBRARY} |
|||
${IOKIT_LIBRARY} |
|||
${OBJC_LIBRARY} |
|||
) |
|||
set(OS_DARWIN TRUE) |
|||
elseif(ANDROID) |
|||
target_sources(usb PRIVATE |
|||
libusb/libusb/os/linux_usbfs.c |
|||
libusb/libusb/os/linux_netlink.c |
|||
) |
|||
find_library(LOG_LIBRARY log) |
|||
target_link_libraries(usb PRIVATE ${LOG_LIBRARY}) |
|||
set(OS_LINUX TRUE) |
|||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") |
|||
target_sources(usb PRIVATE |
|||
libusb/libusb/os/linux_usbfs.c |
|||
) |
|||
find_package(Libudev) |
|||
if(LIBUDEV_FOUND) |
|||
target_sources(usb PRIVATE |
|||
libusb/libusb/os/linux_udev.c |
|||
) |
|||
target_link_libraries(usb PRIVATE "${LIBUDEV_LIBRARIES}") |
|||
target_include_directories(usb PRIVATE "${LIBUDEV_INCLUDE_DIR}") |
|||
set(HAVE_LIBUDEV TRUE) |
|||
set(USE_UDEV TRUE) |
|||
else() |
|||
target_sources(usb PRIVATE |
|||
libusb/libusb/os/linux_netlink.c |
|||
) |
|||
endif() |
|||
set(OS_LINUX TRUE) |
|||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "NetBSD") |
|||
target_sources(usb PRIVATE |
|||
libusb/libusb/os/netbsd_usb.c |
|||
) |
|||
set(OS_NETBSD TRUE) |
|||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD") |
|||
target_sources(usb PRIVATE |
|||
libusb/libusb/os/openbsd_usb.c |
|||
) |
|||
set(OS_OPENBSD TRUE) |
|||
endif() |
|||
|
|||
if(UNIX) |
|||
target_sources(usb PRIVATE |
|||
libusb/libusb/os/poll_posix.c |
|||
libusb/libusb/os/threads_posix.c |
|||
) |
|||
find_package(Threads REQUIRED) |
|||
if(THREADS_HAVE_PTHREAD_ARG) |
|||
target_compile_options(usb PUBLIC "-pthread") |
|||
endif() |
|||
if(CMAKE_THREAD_LIBS_INIT) |
|||
target_link_libraries(usb PRIVATE "${CMAKE_THREAD_LIBS_INIT}") |
|||
endif() |
|||
set(THREADS_POSIX TRUE) |
|||
elseif(WIN32) |
|||
target_sources(usb PRIVATE |
|||
libusb/libusb/os/poll_windows.c |
|||
libusb/libusb/os/threads_windows.c |
|||
) |
|||
endif() |
|||
|
|||
include(CheckFunctionExists) |
|||
include(CheckIncludeFiles) |
|||
include(CheckTypeSize) |
|||
check_include_files(asm/types.h HAVE_ASM_TYPES_H) |
|||
check_function_exists(gettimeofday HAVE_GETTIMEOFDAY) |
|||
check_include_files(linux/filter.h HAVE_LINUX_FILTER_H) |
|||
check_include_files(linux/netlink.h HAVE_LINUX_NETLINK_H) |
|||
check_include_files(poll.h HAVE_POLL_H) |
|||
check_include_files(signal.h HAVE_SIGNAL_H) |
|||
check_include_files(strings.h HAVE_STRINGS_H) |
|||
check_type_size("struct timespec" STRUCT_TIMESPEC) |
|||
check_function_exists(syslog HAVE_SYSLOG_FUNC) |
|||
check_include_files(syslog.h HAVE_SYSLOG_H) |
|||
check_include_files(sys/socket.h HAVE_SYS_SOCKET_H) |
|||
check_include_files(sys/time.h HAVE_SYS_TIME_H) |
|||
check_include_files(sys/types.h HAVE_SYS_TYPES_H) |
|||
|
|||
set(CMAKE_EXTRA_INCLUDE_FILES poll.h) |
|||
check_type_size("nfds_t" nfds_t) |
|||
unset(CMAKE_EXTRA_INCLUDE_FILES) |
|||
if(HAVE_NFDS_T) |
|||
set(POLL_NFDS_TYPE "nfds_t") |
|||
else() |
|||
set(POLL_NFDS_TYPE "unsigned int") |
|||
endif() |
|||
|
|||
check_include_files(sys/timerfd.h USBI_TIMERFD_AVAILABLE) |
|||
|
|||
|
|||
configure_file(config.h.in config.h) |
|||
@ -0,0 +1,90 @@ |
|||
/* Default visibility */ |
|||
#if defined(__GNUC__) || defined(__clang__) |
|||
#define DEFAULT_VISIBILITY __attribute__((visibility("default"))) |
|||
#elif defined(_MSC_VER) |
|||
#define DEFAULT_VISIBILITY __declspec(dllexport) |
|||
#endif |
|||
|
|||
/* Start with debug message logging enabled */ |
|||
#undef ENABLE_DEBUG_LOGGING |
|||
|
|||
/* Message logging */ |
|||
#undef ENABLE_LOGGING |
|||
|
|||
/* Define to 1 if you have the <asm/types.h> header file. */ |
|||
#cmakedefine HAVE_ASM_TYPES_H 1 |
|||
|
|||
/* Define to 1 if you have the `gettimeofday' function. */ |
|||
#cmakedefine HAVE_GETTIMEOFDAY 1 |
|||
|
|||
/* Define to 1 if you have the `udev' library (-ludev). */ |
|||
#cmakedefine HAVE_LIBUDEV 1 |
|||
|
|||
/* Define to 1 if you have the <linux/filter.h> header file. */ |
|||
#cmakedefine HAVE_LINUX_FILTER_H 1 |
|||
|
|||
/* Define to 1 if you have the <linux/netlink.h> header file. */ |
|||
#cmakedefine HAVE_LINUX_NETLINK_H 1 |
|||
|
|||
/* Define to 1 if you have the <poll.h> header file. */ |
|||
#cmakedefine HAVE_POLL_H 1 |
|||
|
|||
/* Define to 1 if you have the <signal.h> header file. */ |
|||
#cmakedefine HAVE_SIGNAL_H 1 |
|||
|
|||
/* Define to 1 if you have the <strings.h> header file. */ |
|||
#cmakedefine HAVE_STRINGS_H 1 |
|||
|
|||
/* Define to 1 if the system has the type `struct timespec'. */ |
|||
#cmakedefine HAVE_STRUCT_TIMESPEC 1 |
|||
|
|||
/* syslog() function available */ |
|||
#cmakedefine HAVE_SYSLOG_FUNC 1 |
|||
|
|||
/* Define to 1 if you have the <syslog.h> header file. */ |
|||
#cmakedefine HAVE_SYSLOG_H 1 |
|||
|
|||
/* Define to 1 if you have the <sys/socket.h> header file. */ |
|||
#cmakedefine HAVE_SYS_SOCKET_H 1 |
|||
|
|||
/* Define to 1 if you have the <sys/time.h> header file. */ |
|||
#cmakedefine HAVE_SYS_TIME_H 1 |
|||
|
|||
/* Define to 1 if you have the <sys/types.h> header file. */ |
|||
#cmakedefine HAVE_SYS_TYPES_H 1 |
|||
|
|||
/* Darwin backend */ |
|||
#cmakedefine OS_DARWIN 1 |
|||
|
|||
/* Linux backend */ |
|||
#cmakedefine OS_LINUX 1 |
|||
|
|||
/* NetBSD backend */ |
|||
#cmakedefine OS_NETBSD 1 |
|||
|
|||
/* OpenBSD backend */ |
|||
#cmakedefine OS_OPENBSD 1 |
|||
|
|||
/* Windows backend */ |
|||
#cmakedefine OS_WINDOWS 1 |
|||
|
|||
/* type of second poll() argument */ |
|||
#define POLL_NFDS_TYPE @POLL_NFDS_TYPE@ |
|||
|
|||
/* Use POSIX Threads */ |
|||
#cmakedefine THREADS_POSIX |
|||
|
|||
/* timerfd headers available */ |
|||
#cmakedefine USBI_TIMERFD_AVAILABLE 1 |
|||
|
|||
/* Enable output to system log */ |
|||
#define USE_SYSTEM_LOGGING_FACILITY 1 |
|||
|
|||
/* Use udev for device enumeration/hotplug */ |
|||
#cmakedefine USE_UDEV 1 |
|||
|
|||
/* Use GNU extensions */ |
|||
#define _GNU_SOURCE |
|||
|
|||
/* Oldest Windows version supported */ |
|||
#define WINVER 0x0501 |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue