Default to development build profile if a `.git` directory exists, else error out of build configuration. This make `auto` the default build profile and if set and a `.git` directory is present default to `development`, else raise an error. Add some docs to INSTALL describing build profiles and update how they are used in the source to match.
120 lines
3.6 KiB
Text
120 lines
3.6 KiB
Text
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.
|
|
|
|
Build profiles
|
|
--------------
|
|
|
|
Geary can be built using a number of different build profiles, which
|
|
determine things like the application id, the location of stored data,
|
|
the name of the application and other visual elements that distinguish
|
|
release builds from other types.
|
|
|
|
These can be set at build configuration time using the Meson `setup`
|
|
and `configure` commands, using the standard `-Dprofile=…` option. See
|
|
the `profile` option in `meson_options.txt` for the current list of
|
|
supported types.
|
|
|
|
Maintainers must select the `release` build profile when packaging
|
|
non-test release builds, otherwise Geary will using branding and data
|
|
locations intended for development only.
|
|
|
|
Note that setting the profile does not alter such things as cmopiler
|
|
options, use the standard Meson `--buildtype` argument for that.
|
|
|
|
If built from
|
|
|
|
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 gsound-devel \
|
|
gtk3-devel iso-codes-devel itstool json-glib-devel \
|
|
libappstream-glib-devel libgee-devel libhandy1-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-2-dev libfolks-dev \
|
|
libgcr-3-dev libgee-0.8-dev libglib2.0-dev libgmime-3.0-dev \
|
|
libgoa-1.0-dev libgspell-1-dev libgsound-dev libgtk-3-dev \
|
|
libjson-glib-dev libhandy-1-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-2020 Michael Gratton <mike@vee.net>
|