mirror of
https://git.meli.delivery/meli/meli
synced 2024-10-30 21:20:34 +00:00
49dccb94a5
Add notmuch feature that includes melib/notmuch_backend and a new feature for the ui crate. We need the latter in order to know from within ui if we have been linked with libnotmuch
105 lines
2.8 KiB
Plaintext
105 lines
2.8 KiB
Plaintext
__
|
|
__/ \__
|
|
/ \__/ \__ .
|
|
\__/ \__/ \ , _ , _ ___ │ '
|
|
/ \__ \__/ │' `│ `┒ .' ` │ │
|
|
\__/ \__/ \ │ │ │ |────' │ │
|
|
\__/ \__/ │ / `.___, /\__ /
|
|
\__/
|
|
,-.
|
|
\_/
|
|
terminal mail user agent {|||)<
|
|
/ \
|
|
`-'
|
|
DOCUMENTATION
|
|
=============
|
|
|
|
After installing meli, see meli(1) and meli.conf(5) for documentation.
|
|
|
|
BUILDING
|
|
========
|
|
|
|
meli requires rust 1.34 and rust's package manager, Cargo. Information on how
|
|
to get it on your system can be found here:
|
|
|
|
https://doc.rust-lang.org/cargo/getting-started/installation.html
|
|
|
|
With Cargo available, the project can be built with
|
|
|
|
# make
|
|
|
|
The resulting binary will then be found under target/release/meli
|
|
|
|
Run:
|
|
|
|
# make install
|
|
|
|
to install the binary and man pages. This requires root, so I suggest you override the default paths and install it in your $HOME:
|
|
|
|
# make PREFIX=$HOME/.local install
|
|
|
|
See meli(1) and meli.conf(5) for documentation.
|
|
|
|
You can build and run meli with one command:
|
|
|
|
# cargo run --release
|
|
|
|
While the project is in early development, meli will only be developed for the
|
|
linux kernel and respected linux distributions. Support for more UNIX-like OSes
|
|
is on the roadmap.
|
|
|
|
BUILDING IN DEBIAN
|
|
==================
|
|
|
|
Building with Debian's packaged cargo might require the installation of these
|
|
two packages: librust-openssl-sys-dev and librust-libdbus-sys-dev
|
|
|
|
BUILDING WITH NOTMUCH
|
|
=====================
|
|
|
|
To use the optional notmuch backend feature, you must have libnotmuch installed in your system. In Debian-like systems, install the "libnotmuch" package.
|
|
|
|
To build with notmuch support, prepend the environment variable "MELI_FEATURES='notmuch'" to your make invocation:
|
|
|
|
# MELI_FEATURES="notmuch" make
|
|
|
|
or if building directly with cargo, use the flag '--features="notmuch"'.
|
|
|
|
DEVELOPMENT
|
|
===========
|
|
|
|
Development builds can be built and/or run with
|
|
|
|
# cargo build
|
|
# cargo run
|
|
|
|
There is a debug/tracing log feature that can be enabled by using the flag
|
|
`--feature debug-tracing` after uncommenting the features in `Cargo.toml`. The logs
|
|
are printed in stderr, thus you can run meli with a redirection (i.e `2> log`)
|
|
|
|
Code style follows the default rustfmt profile.
|
|
|
|
CONFIG
|
|
======
|
|
|
|
meli by default looks for a configuration file in this location:
|
|
# $XDG_CONFIG_HOME/meli/config
|
|
|
|
You can run meli with arbitrary configuration files by setting the MELI_CONFIG
|
|
environment variable to their locations, ie:
|
|
|
|
# MELI_CONFIG=./test_config cargo run
|
|
|
|
TESTING
|
|
=======
|
|
|
|
How to run specific tests:
|
|
|
|
# cargo test -p {melib, ui, meli} (-- --nocapture) (--test test_name)
|
|
|
|
PROFILING
|
|
=========
|
|
|
|
# perf record -g target/debug/bin
|
|
# perf script | stackcollapse-perf | rust-unmangle | flamegraph > perf.svg
|