Skip to content

Commit dd0af0a

Browse files
Linux: Allow connecting Wiimotes via L2CAP (#1353)
1 parent 934cb54 commit dd0af0a

14 files changed

+557
-246
lines changed

.github/workflows/build.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
- name: "Install system dependencies"
4040
run: |
4141
sudo apt update -qq
42-
sudo apt install -y clang-15 cmake freeglut3-dev libgcrypt20-dev libglm-dev libgtk-3-dev libpulse-dev libsecret-1-dev libsystemd-dev libudev-dev nasm ninja-build
42+
sudo apt install -y clang-15 cmake freeglut3-dev libgcrypt20-dev libglm-dev libgtk-3-dev libpulse-dev libsecret-1-dev libsystemd-dev libudev-dev nasm ninja-build libbluetooth-dev
4343
4444
- name: "Setup cmake"
4545
uses: jwlawson/actions-setup-cmake@v2
@@ -96,7 +96,7 @@ jobs:
9696
- name: "Install system dependencies"
9797
run: |
9898
sudo apt update -qq
99-
sudo apt install -y clang-15 cmake freeglut3-dev libgcrypt20-dev libglm-dev libgtk-3-dev libpulse-dev libsecret-1-dev libsystemd-dev nasm ninja-build appstream
99+
sudo apt install -y clang-15 cmake freeglut3-dev libgcrypt20-dev libglm-dev libgtk-3-dev libpulse-dev libsecret-1-dev libsystemd-dev nasm ninja-build appstream libbluetooth-dev
100100
101101
- name: "Build AppImage"
102102
run: |

BUILD.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,18 @@ To compile Cemu, a recent enough compiler and STL with C++20 support is required
4646
### Dependencies
4747

4848
#### For Arch and derivatives:
49-
`sudo pacman -S --needed base-devel clang cmake freeglut git glm gtk3 libgcrypt libpulse libsecret linux-headers llvm nasm ninja systemd unzip zip`
49+
`sudo pacman -S --needed base-devel bluez-libs clang cmake freeglut git glm gtk3 libgcrypt libpulse libsecret linux-headers llvm nasm ninja systemd unzip zip`
5050

5151
#### For Debian, Ubuntu and derivatives:
52-
`sudo apt install -y cmake curl clang-15 freeglut3-dev git libgcrypt20-dev libglm-dev libgtk-3-dev libpulse-dev libsecret-1-dev libsystemd-dev libtool nasm ninja-build`
52+
`sudo apt install -y cmake curl clang-15 freeglut3-dev git libbluetooth-dev libgcrypt20-dev libglm-dev libgtk-3-dev libpulse-dev libsecret-1-dev libsystemd-dev libtool nasm ninja-build`
5353

5454
You may also need to install `libusb-1.0-0-dev` as a workaround for an issue with the vcpkg hidapi package.
5555

5656
At Step 3 in [Build Cemu using cmake and clang](#build-cemu-using-cmake-and-clang), use the following command instead:
5757
`cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DCMAKE_C_COMPILER=/usr/bin/clang-15 -DCMAKE_CXX_COMPILER=/usr/bin/clang++-15 -G Ninja -DCMAKE_MAKE_PROGRAM=/usr/bin/ninja`
5858

5959
#### For Fedora and derivatives:
60-
`sudo dnf install clang cmake cubeb-devel freeglut-devel git glm-devel gtk3-devel kernel-headers libgcrypt-devel libsecret-devel libtool libusb1-devel llvm nasm ninja-build perl-core systemd-devel zlib-devel zlib-static`
60+
`sudo dnf install bluez-libs clang cmake cubeb-devel freeglut-devel git glm-devel gtk3-devel kernel-headers libgcrypt-devel libsecret-devel libtool libusb1-devel llvm nasm ninja-build perl-core systemd-devel zlib-devel zlib-static`
6161

6262
### Build Cemu
6363

CMakeLists.txt

+7
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ endif()
9898
if (UNIX AND NOT APPLE)
9999
option(ENABLE_WAYLAND "Build with Wayland support" ON)
100100
option(ENABLE_FERAL_GAMEMODE "Enables Feral Interactive GameMode Support" ON)
101+
option(ENABLE_BLUEZ "Build with Bluez support" ON)
101102
endif()
102103

103104
option(ENABLE_OPENGL "Enables the OpenGL backend" ON)
@@ -179,6 +180,12 @@ if (UNIX AND NOT APPLE)
179180
endif()
180181
find_package(GTK3 REQUIRED)
181182

183+
if(ENABLE_BLUEZ)
184+
find_package(bluez REQUIRED)
185+
set(ENABLE_WIIMOTE ON)
186+
add_compile_definitions(HAS_BLUEZ)
187+
endif()
188+
182189
endif()
183190

184191
if (ENABLE_VULKAN)

cmake/Findbluez.cmake

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# SPDX-FileCopyrightText: 2022 Andrea Pappacoda <[email protected]>
2+
# SPDX-License-Identifier: ISC
3+
4+
find_package(bluez CONFIG)
5+
if (NOT bluez_FOUND)
6+
find_package(PkgConfig)
7+
if (PKG_CONFIG_FOUND)
8+
pkg_search_module(bluez IMPORTED_TARGET GLOBAL bluez-1.0 bluez)
9+
if (bluez_FOUND)
10+
add_library(bluez::bluez ALIAS PkgConfig::bluez)
11+
endif ()
12+
endif ()
13+
endif ()
14+
15+
find_package_handle_standard_args(bluez
16+
REQUIRED_VARS
17+
bluez_LINK_LIBRARIES
18+
bluez_FOUND
19+
VERSION_VAR bluez_VERSION
20+
)

0 commit comments

Comments
 (0)