try harder to find libmonado

This commit is contained in:
galister
2024-06-09 00:14:17 +09:00
parent 8ae65083f9
commit 7037740d46

View File

@@ -185,7 +185,8 @@ pub(super) fn find_libmonado() -> anyhow::Result<libloading::Library> {
} }
} }
const PROC_NAMES: [&str; 1] = ["monado-service"]; const PROC_NAMES: [&str; 2] = ["monado-service", "wivrn-server"];
let mut system = sysinfo::System::new(); let mut system = sysinfo::System::new();
system.refresh_processes(); system.refresh_processes();
for p in system.processes().values() { for p in system.processes().values() {
@@ -201,16 +202,20 @@ pub(super) fn find_libmonado() -> anyhow::Result<libloading::Library> {
} }
fn proc_load_libmonado(proc: &Process) -> Option<libloading::Library> { fn proc_load_libmonado(proc: &Process) -> Option<libloading::Library> {
let path = proc // relative to folder containing binary
.exe()? const SEARCH_PATHS: [&str; 3] = [
.parent()? "../lib/libmonado.so",
.parent()? "../libmonado/libmonado.so",
.join("lib") "../_deps/monado-build/src/xrt/targets/libmonado/libmonado.so",
.join("libmonado.so"); ];
if path.exists() { for &p in SEARCH_PATHS.iter() {
Some(unsafe { libloading::Library::new(path).ok()? }) let path = proc.exe()?.parent()?.join(p);
} else {
None if path.exists() {
return Some(unsafe { libloading::Library::new(path).ok()? });
}
} }
None
} }