try harder to find libmonado
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user