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
pull/144/head
Ludovic LANGE 2021-07-06 00:07:58 +02:00 committed by Manos Pitsidianakis
parent d6bf700175
commit b08570349d
Signed by: Manos Pitsidianakis
GPG Key ID: 73627C2F690DF710
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(not(target_os = "macos"))]
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(not(target_os = "macos"))]
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!(