mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-10-31 02:34:11 +01:00 
			
		
		
		
	cmake: prefer system libusb
This commit is contained in:
		
							parent
							
								
									7c68f93bdf
								
							
						
					
					
						commit
						f385175aa2
					
				| @ -31,8 +31,6 @@ CMAKE_DEPENDENT_OPTION(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSV | ||||
| 
 | ||||
| option(ENABLE_WEB_SERVICE "Enable web services (telemetry, etc.)" ON) | ||||
| 
 | ||||
| option(YUZU_USE_BUNDLED_LIBUSB "Compile bundled libusb" OFF) | ||||
| 
 | ||||
| option(YUZU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" "${WIN32}") | ||||
| 
 | ||||
| option(YUZU_USE_QT_MULTIMEDIA "Use QtMultimedia for Camera" OFF) | ||||
| @ -202,6 +200,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) | ||||
| find_package(enet 1.3) | ||||
| find_package(fmt 9 REQUIRED) | ||||
| find_package(inih) | ||||
| find_package(libusb 1.0.24) | ||||
| find_package(lz4 REQUIRED) | ||||
| find_package(nlohmann_json 3.8 REQUIRED) | ||||
| find_package(Opus 1.3) | ||||
| @ -461,26 +460,6 @@ if (TARGET Boost::boost) | ||||
|     add_library(boost ALIAS Boost::boost) | ||||
| endif() | ||||
| 
 | ||||
| # Ensure libusb is properly configured (based on dolphin libusb include) | ||||
| if(NOT YUZU_USE_BUNDLED_LIBUSB) | ||||
|     find_package(PkgConfig) | ||||
|     if (PKG_CONFIG_FOUND AND NOT CMAKE_SYSTEM_NAME MATCHES "DragonFly|FreeBSD") | ||||
|         pkg_check_modules(LIBUSB QUIET libusb-1.0>=1.0.24) | ||||
|     else() | ||||
|         find_package(LibUSB) | ||||
|     endif() | ||||
| 
 | ||||
|     if (LIBUSB_FOUND) | ||||
|         add_library(usb INTERFACE) | ||||
|         target_include_directories(usb INTERFACE "${LIBUSB_INCLUDEDIR}" "${LIBUSB_INCLUDE_DIRS}") | ||||
|         target_link_directories(usb INTERFACE "${LIBUSB_LIBRARY_DIRS}") | ||||
|         target_link_libraries(usb INTERFACE "${LIBUSB_LIBRARIES}") | ||||
|     else() | ||||
|         message(WARNING "libusb not found, falling back to externals") | ||||
|         set(YUZU_USE_BUNDLED_LIBUSB ON) | ||||
|     endif() | ||||
| endif() | ||||
| 
 | ||||
| # List of all FFmpeg components required | ||||
| set(FFmpeg_COMPONENTS | ||||
|     avcodec | ||||
|  | ||||
							
								
								
									
										4
									
								
								externals/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								externals/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							| @ -45,8 +45,8 @@ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "12" AND CMAKE_CXX_COMPILER | ||||
| endif() | ||||
| 
 | ||||
| # libusb | ||||
| if (NOT LIBUSB_FOUND OR YUZU_USE_BUNDLED_LIBUSB) | ||||
|     add_subdirectory(libusb) | ||||
| if (NOT TARGET libusb::usb) | ||||
|     add_subdirectory(libusb EXCLUDE_FROM_ALL) | ||||
| endif() | ||||
| 
 | ||||
| # SDL2 | ||||
|  | ||||
							
								
								
									
										44
									
								
								externals/find-modules/FindLibUSB.cmake
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										44
									
								
								externals/find-modules/FindLibUSB.cmake
									
									
									
									
										vendored
									
									
								
							| @ -1,44 +0,0 @@ | ||||
| # SPDX-FileCopyrightText: 2009 Michal Cihar <michal@cihar.com> | ||||
| # SPDX-License-Identifier: GPL-2.0-or-later | ||||
| 
 | ||||
| # - Find libusb-1.0 library | ||||
| # This module defines | ||||
| #  LIBUSB_INCLUDE_DIR, where to find bluetooth.h | ||||
| #  LIBUSB_LIBRARIES, the libraries needed to use libusb-1.0. | ||||
| #  LIBUSB_FOUND, If false, do not try to use libusb-1.0. | ||||
| # | ||||
| # vim: expandtab sw=4 ts=4 sts=4: | ||||
| 
 | ||||
| if(ANDROID) | ||||
|        set(LIBUSB_FOUND FALSE CACHE INTERNAL "libusb-1.0 found") | ||||
|        message(STATUS "libusb-1.0 not found.") | ||||
| elseif (NOT LIBUSB_FOUND) | ||||
|     pkg_check_modules (LIBUSB_PKG libusb-1.0) | ||||
| 
 | ||||
|     find_path(LIBUSB_INCLUDE_DIR NAMES libusb.h | ||||
|        PATHS | ||||
|        ${LIBUSB_PKG_INCLUDE_DIRS} | ||||
|        /usr/include/libusb-1.0 | ||||
|        /usr/include | ||||
|        /usr/local/include/libusb-1.0 | ||||
|        /usr/local/include | ||||
|     ) | ||||
| 
 | ||||
|     find_library(LIBUSB_LIBRARIES NAMES usb-1.0 usb | ||||
|        PATHS | ||||
|        ${LIBUSB_PKG_LIBRARY_DIRS} | ||||
|        /usr/lib | ||||
|        /usr/local/lib | ||||
|     ) | ||||
| 
 | ||||
|     if(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) | ||||
|        set(LIBUSB_FOUND TRUE CACHE INTERNAL "libusb-1.0 found") | ||||
|        message(STATUS "Found libusb-1.0: ${LIBUSB_INCLUDE_DIR}, ${LIBUSB_LIBRARIES}") | ||||
|     else(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) | ||||
|        set(LIBUSB_FOUND FALSE CACHE INTERNAL "libusb-1.0 found") | ||||
|        message(STATUS "libusb-1.0 not found.") | ||||
|     endif(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) | ||||
| 
 | ||||
|     mark_as_advanced(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES) | ||||
| endif () | ||||
| 
 | ||||
							
								
								
									
										18
									
								
								externals/find-modules/Findlibusb.cmake
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								externals/find-modules/Findlibusb.cmake
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | ||||
| # SPDX-FileCopyrightText: 2022 Alexandre Bouvier <contact@amb.tf> | ||||
| # | ||||
| # SPDX-License-Identifier: GPL-3.0-or-later | ||||
| 
 | ||||
| find_package(PkgConfig QUIET) | ||||
| if (PKG_CONFIG_FOUND) | ||||
|     pkg_search_module(LIBUSB QUIET IMPORTED_TARGET libusb-1.0) | ||||
| endif() | ||||
| 
 | ||||
| include(FindPackageHandleStandardArgs) | ||||
| find_package_handle_standard_args(libusb | ||||
|     REQUIRED_VARS LIBUSB_LINK_LIBRARIES | ||||
|     VERSION_VAR LIBUSB_VERSION | ||||
| ) | ||||
| 
 | ||||
| if (libusb_FOUND AND NOT TARGET libusb::usb) | ||||
|     add_library(libusb::usb ALIAS PkgConfig::LIBUSB) | ||||
| endif() | ||||
							
								
								
									
										2
									
								
								externals/libusb/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								externals/libusb/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							| @ -273,3 +273,5 @@ else() # MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") | ||||
| 
 | ||||
|     configure_file(config.h.in config.h) | ||||
| endif() # MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") | ||||
| 
 | ||||
| add_library(libusb::usb ALIAS usb) | ||||
|  | ||||
| @ -64,10 +64,8 @@ if (ENABLE_SDL2) | ||||
|     target_compile_definitions(input_common PRIVATE HAVE_SDL2) | ||||
| endif() | ||||
| 
 | ||||
| target_link_libraries(input_common PRIVATE usb) | ||||
| 
 | ||||
| create_target_directory_groups(input_common) | ||||
| target_link_libraries(input_common PUBLIC core PRIVATE common Boost::boost) | ||||
| target_link_libraries(input_common PUBLIC core PRIVATE common Boost::boost libusb::usb) | ||||
| 
 | ||||
| if (YUZU_USE_PRECOMPILED_HEADERS) | ||||
|     target_precompile_headers(input_common PRIVATE precompiled_headers.h) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user