Building & Installing Geary
===========================

Building
--------

Geary uses the Meson <http://mesonbuild.com> and Ninja
<https://ninja-build.org> build systems. To build Geary, run the
following commands from the top-level directory of the source code
repository:

    meson build
    ninja -C build

A convenience Makefile for development only is also provided. To use
it, simply invoke make from the top-level directory.

Dependencies
------------

Building Geary requires the following major libraries and tools:

 * GTK+ 3
 * WebKitGTK+ 2
 * SQLite 3
 * Vala

See the `meson.build` file in the top-level directory for the complete
list of required dependencies and minimum versions.

Geary also requires SQLite to be built with the compiler flag
`-DSQLITE_ENABLE_FTS3`.

All required libraries and tools are available from major Linux
distribution's package repositories:

Installing dependencies on Fedora
---------------------------------

Install them by running this command:

    sudo dnf install meson vala desktop-file-utils enchant2-devel \
        folks-devel gcr-devel glib2-devel gmime30-devel \
        gnome-online-accounts-devel gspell-devel gtk3-devel \
        iso-codes-devel json-glib-devel libappstream-glib-devel \
        libgee-devel libhandy-devel libpeas-devel libsecret-devel \
        libunwind-devel libxml2-devel libytnef-devel sqlite-devel \
        webkitgtk4-devel

Installing dependencies on Ubuntu/Debian
----------------------------------------

Install them by running this command:

    sudo apt-get install meson build-essential valac \
        desktop-file-utils iso-codes gettext itstool \
        libappstream-glib-dev libenchant-dev libfolks-dev libgcr-3-dev \
        libgee-0.8-dev libglib2.0-dev libgmime3.0-dev libgoa-1.0-dev \
        libgspell-1-dev libgtk-3-dev libjson-glib-dev libhandy-0.0-dev \
        libpeas-dev libsecret-1-dev libsqlite3-dev libunwind-dev \
        libwebkit2gtk-4.0-dev libxml2-dev libytnef0-dev

And for Ubuntu Messaging Menu integration:

    sudo apt-get install libmessaging-menu-dev

Running
-------

If you wish to try Geary before installing it, you may execute it directly
from its build directory:

    ./build/src/geary

Note that certain desktop integration (such as being listed in an
application menu) requires full installation.

Installation
------------

After Geary has built, install it by invoking the install target:

    ninja -C build install

After installation, it can be uninstalled in the same way:

    ninja -C build uninstall

By default, Geary will install under /usr/local. To install to a
different directory, set pass the --prefix to meson when performing
the initial configuration step:

    meson --prefix=/usr -C build

---
Copyright 2016 Software Freedom Conservancy Inc.  
Copyright 2018 Michael Gratton <mike@vee.net>
