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
106-libnotmuch5-not-found-on-macos
Ludovic LANGE 5 months ago
parent
commit
7afd456f38
Signed by: llange GPG Key ID: D157319EC1A4F171
  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(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 {

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

Loading…
Cancel
Save