summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jan Beich2020-07-07 10:13:15 +0000
committerGravatar Jan Beich2020-07-07 10:13:18 +0000
commit2af7e40ce698eab25ac44cd492e7546e1010f16a (patch)
tree68123a630e1c44f0fb6427d882bade62f2a66d9c
parentinput_common/gcadapter: add missing C++11 header required by libc++ (diff)
downloadyuzu-2af7e40ce698eab25ac44cd492e7546e1010f16a.tar.gz
yuzu-2af7e40ce698eab25ac44cd492e7546e1010f16a.tar.xz
yuzu-2af7e40ce698eab25ac44cd492e7546e1010f16a.zip
cmake: unbreak system libusb support
Reference libusb doesn't support DragonFly and FreeBSD because those ship a different libusb implementation (supports 0.1, 1.0, 2.0 API). ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(usbi_alloc_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(usbi_alloc_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_has_capability) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_has_capability) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_has_capability) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(usbi_connect_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(usbi_disconnect_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_get_device_list) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_get_device_list) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_unref_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_unref_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_write >>> referenced by core.c >>> core.c.o:(usbi_signal_event) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_read >>> referenced by core.c >>> core.c.o:(usbi_clear_event) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_wrap_sys_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_wrap_sys_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_wrap_sys_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_open) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_open) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_read >>> referenced by core.c >>> core.c.o:(libusb_close) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_write >>> referenced by core.c >>> core.c.o:(libusb_close) in archive externals/libusb/libusb.a ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors) c++: error: linker command failed with exit code 1 (use -v to see invocation)
-rw-r--r--CMakeLists.txt6
-rw-r--r--externals/find-modules/FindLibUSB.cmake43
2 files changed, 47 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 27383bce8..cd40e5cfe 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -331,8 +331,10 @@ endif()
331 331
332# Ensure libusb is properly configured (based on dolphin libusb include) 332# Ensure libusb is properly configured (based on dolphin libusb include)
333find_package(LibUSB) 333find_package(LibUSB)
334add_subdirectory(externals/libusb) 334if (NOT LIBUSB_FOUND)
335set(LIBUSB_LIBRARIES usb) 335 add_subdirectory(externals/libusb)
336 set(LIBUSB_LIBRARIES usb)
337endif()
336 338
337 339
338# Prefer the -pthread flag on Linux. 340# Prefer the -pthread flag on Linux.
diff --git a/externals/find-modules/FindLibUSB.cmake b/externals/find-modules/FindLibUSB.cmake
new file mode 100644
index 000000000..dec0b98b0
--- /dev/null
+++ b/externals/find-modules/FindLibUSB.cmake
@@ -0,0 +1,43 @@
1# - Find libusb-1.0 library
2# This module defines
3# LIBUSB_INCLUDE_DIR, where to find bluetooth.h
4# LIBUSB_LIBRARIES, the libraries needed to use libusb-1.0.
5# LIBUSB_FOUND, If false, do not try to use libusb-1.0.
6#
7# Copyright (c) 2009, Michal Cihar, <michal@cihar.com>
8#
9# vim: expandtab sw=4 ts=4 sts=4:
10
11if(ANDROID)
12 set(LIBUSB_FOUND FALSE CACHE INTERNAL "libusb-1.0 found")
13 message(STATUS "libusb-1.0 not found.")
14elseif (NOT LIBUSB_FOUND)
15 pkg_check_modules (LIBUSB_PKG libusb-1.0)
16
17 find_path(LIBUSB_INCLUDE_DIR NAMES libusb.h
18 PATHS
19 ${LIBUSB_PKG_INCLUDE_DIRS}
20 /usr/include/libusb-1.0
21 /usr/include
22 /usr/local/include/libusb-1.0
23 /usr/local/include
24 )
25
26 find_library(LIBUSB_LIBRARIES NAMES usb-1.0 usb
27 PATHS
28 ${LIBUSB_PKG_LIBRARY_DIRS}
29 /usr/lib
30 /usr/local/lib
31 )
32
33 if(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
34 set(LIBUSB_FOUND TRUE CACHE INTERNAL "libusb-1.0 found")
35 message(STATUS "Found libusb-1.0: ${LIBUSB_INCLUDE_DIR}, ${LIBUSB_LIBRARIES}")
36 else(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
37 set(LIBUSB_FOUND FALSE CACHE INTERNAL "libusb-1.0 found")
38 message(STATUS "libusb-1.0 not found.")
39 endif(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
40
41 mark_as_advanced(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES)
42endif ()
43