Browse Source

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
master
Ludovic LANGE 5 months ago
committed by Manos Pitsidianakis
parent
commit
b08570349d
Signed by: epilys GPG Key ID: 73627C2F690DF710
  1. 6
      melib/src/backends.rs
  2. 6
      melib/src/backends/notmuch.rs

6
melib/src/backends.rs

@ -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 {

6
melib/src/backends/notmuch.rs

@ -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!(

Loading…
Cancel
Save