Notmuch dynamic library can now be loaded on macos

On macos, the name of dynamic libraries is a little bit different than on Unix.
The code was looking for a `libnotmuch.so.5` library, while on macos
it's installed as `libnotmuch.5.dylib`.

This commit uses cfg attribute to conditionally change the library name.

Closes #106
106-libnotmuch5-not-found-on-macos
Ludovic LANGE 2021-07-06 00:07:58 +02:00
parent 66c6b62aa6
commit 7afd456f38
Signed by untrusted user who does not match committer: Ludovic LANGE
GPG Key ID: D157319EC1A4F171
2 changed files with 10 additions and 2 deletions

View File

@ -156,7 +156,11 @@ impl Backends {
}
#[cfg(feature = "notmuch_backend")]
{
if libloading::Library::new("libnotmuch.so.5").is_ok() {
#[cfg(target_os = "unix")]
let dlpath = "libnotmuch.so.5";
#[cfg(target_os = "macos")]
let dlpath = "libnotmuch.5.dylib";
if libloading::Library::new(dlpath).is_ok() {
b.register(
"notmuch".to_string(),
Backend {

View File

@ -307,7 +307,11 @@ impl NotmuchDb {
_is_subscribed: Box<dyn Fn(&str) -> bool>,
event_consumer: BackendEventConsumer,
) -> Result<Box<dyn MailBackend>> {
let lib = Arc::new(libloading::Library::new("libnotmuch.so.5")?);
#[cfg(target_os = "unix")]
let dlpath = "libnotmuch.so.5";
#[cfg(target_os = "macos")]
let dlpath = "libnotmuch.5.dylib";
let lib = Arc::new(libloading::Library::new(dlpath)?);
let path = Path::new(s.root_mailbox.as_str()).expand();
if !path.exists() {
return Err(MeliError::new(format!(