[compat] fix libusb when disabled error (solaris, fbsd, etc)
Some checks failed
eden-license / license-header (pull_request) Failing after 44m45s

This fixes an issue in builds where libusb is disabled, it also uses and prioritizes system dependencies over vendored ones (so ports is easier)

Signed-off-by: lizzie <lizzie@eden-emu.dev>
This commit is contained in:
lizzie 2025-10-02 01:02:30 +00:00
parent 1a5b3fb239
commit bec05851d5
Signed by: Lizzie
GPG key ID: 00287378CADCAB13
4 changed files with 17 additions and 39 deletions

View file

@ -155,7 +155,8 @@ option(YUZU_USE_QT_MULTIMEDIA "Use QtMultimedia for Camera" OFF)
option(YUZU_USE_QT_WEB_ENGINE "Use QtWebEngine for web applet implementation" OFF)
set(YUZU_QT_MIRROR "" CACHE STRING "What mirror to use for downloading the bundled Qt libraries")
option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
# FreeBSD doesn't have a cubeb port yet, vendoring it isn't required (it's optional anyways)
cmake_dependent_option(ENABLE_CUBEB "Enables the cubeb audio backend" ON "NOT PLATFORM_FREEBSD" OFF)
set(EXT_DEFAULT OFF)
if (MSVC OR ANDROID)
@ -166,12 +167,13 @@ option(YUZU_USE_CPM "Use CPM to fetch system dependencies (fmt, boost, etc) if n
option(YUZU_USE_BUNDLED_FFMPEG "Download bundled FFmpeg" ${EXT_DEFAULT})
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from source" OFF "NOT WIN32 AND NOT ANDROID" OFF)
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "NOT ANDROID" OFF)
# Re-allow on FreeBSD once its on mainline ports
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "WIN32 OR PLATFORM_LINUX OR APPLE" OFF)
cmake_dependent_option(ENABLE_OPENGL "Enable OpenGL" ON "NOT WIN32 OR NOT ARCHITECTURE_arm64" OFF)
mark_as_advanced(FORCE ENABLE_OPENGL)
option(ENABLE_WEB_SERVICE "Enable web services (telemetry, etc.)" ON)
cmake_dependent_option(ENABLE_WEB_SERVICE "Enable web services (telemetry, etc.)" ON "WIN32 OR ANDROID OR PLATFORM_LINUX OR APPLE" OFF)
option(ENABLE_WIFI_SCAN "Enable WiFi scanning" OFF)
cmake_dependent_option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence" OFF "ENABLE_QT" OFF)

View file

@ -144,32 +144,8 @@ brew install molten-vk vulkan-loader
<details>
<summary>FreeBSD</summary>
```
devel/cmake
devel/sdl20
devel/boost-libs
devel/catch2
devel/libfmt
devel/nlohmann-json
devel/ninja
devel/nasm
devel/autoconf
devel/pkgconf
devel/qt6-base
net/enet
multimedia/ffnvcodec-headers
multimedia/ffmpeg
audio/opus
archivers/liblz4
lang/gcc12
graphics/glslang
graphics/vulkan-utility-libraries
```sh
sudo pkg install devel/cmake devel/sdl20 devel/boost-libs devel/catch2 devel/libfmt devel/nlohmann-json devel/ninja devel/nasm devel/autoconf devel/pkgconf devel/qt6-base devel/simpleini net/enet multimedia/ffnvcodec-headers multimedia/ffmpeg audio/opus archivers/liblz4 lang/gcc12 graphics/glslang graphics/vulkan-utility-libraries graphics/spirv-tools www/cpp-httplib devel/jwt-cpp devel/unordered-dense devel/zydis
```
If using FreeBSD 12 or prior, use `devel/pkg-config` instead.

View file

@ -83,7 +83,7 @@ if (ENABLE_LIBUSB)
drivers/gc_adapter.h
)
target_link_libraries(input_common PRIVATE libusb::usb)
target_compile_definitions(input_common PRIVATE HAVE_LIBUSB)
target_compile_definitions(input_common PRIVATE ENABLE_LIBUSB)
endif()
create_target_directory_groups(input_common)

View file

@ -19,7 +19,7 @@
#include "input_common/input_poller.h"
#include "input_common/main.h"
#ifdef HAVE_LIBUSB
#ifdef ENABLE_LIBUSB
#include "input_common/drivers/gc_adapter.h"
#endif
#ifdef HAVE_SDL2
@ -76,7 +76,7 @@ struct InputSubsystem::Impl {
RegisterEngine("keyboard", keyboard);
RegisterEngine("mouse", mouse);
RegisterEngine("touch", touch_screen);
#ifdef HAVE_LIBUSB
#ifdef ENABLE_LIBUSB
RegisterEngine("gcpad", gcadapter);
#endif
RegisterEngine("cemuhookudp", udp_client);
@ -110,7 +110,7 @@ struct InputSubsystem::Impl {
UnregisterEngine(keyboard);
UnregisterEngine(mouse);
UnregisterEngine(touch_screen);
#ifdef HAVE_LIBUSB
#ifdef ENABLE_LIBUSB
UnregisterEngine(gcadapter);
#endif
UnregisterEngine(udp_client);
@ -145,7 +145,7 @@ struct InputSubsystem::Impl {
auto android_devices = android->GetInputDevices();
devices.insert(devices.end(), android_devices.begin(), android_devices.end());
#endif
#ifdef HAVE_LIBUSB
#ifdef ENABLE_LIBUSB
auto gcadapter_devices = gcadapter->GetInputDevices();
devices.insert(devices.end(), gcadapter_devices.begin(), gcadapter_devices.end());
#endif
@ -178,7 +178,7 @@ struct InputSubsystem::Impl {
return android;
}
#endif
#ifdef HAVE_LIBUSB
#ifdef ENABLE_LIBUSB
if (engine == gcadapter->GetEngineName()) {
return gcadapter;
}
@ -263,7 +263,7 @@ struct InputSubsystem::Impl {
return true;
}
#endif
#ifdef HAVE_LIBUSB
#ifdef ENABLE_LIBUSB
if (engine == gcadapter->GetEngineName()) {
return true;
}
@ -294,7 +294,7 @@ struct InputSubsystem::Impl {
#ifdef ANDROID
android->BeginConfiguration();
#endif
#ifdef HAVE_LIBUSB
#ifdef ENABLE_LIBUSB
gcadapter->BeginConfiguration();
#endif
udp_client->BeginConfiguration();
@ -310,7 +310,7 @@ struct InputSubsystem::Impl {
#ifdef ANDROID
android->EndConfiguration();
#endif
#ifdef HAVE_LIBUSB
#ifdef ENABLE_LIBUSB
gcadapter->EndConfiguration();
#endif
udp_client->EndConfiguration();
@ -343,7 +343,7 @@ struct InputSubsystem::Impl {
std::shared_ptr<VirtualAmiibo> virtual_amiibo;
std::shared_ptr<VirtualGamepad> virtual_gamepad;
#ifdef HAVE_LIBUSB
#ifdef ENABLE_LIBUSB
std::shared_ptr<GCAdapter> gcadapter;
#endif