* src/client/meson.build,
src/engine/meson.build,
src/sqlite3-unicodesn/meson.build: Build static libraries so they can
be found when installed.
* src/meson.build: Include GResources in the binary now we are compiling
static libraries, so the resources can be found when compiled.
Some remarks:
* Note that Meson adds a hard dependency on Python 3.
* All dependencies and defines are now listed together.
* Some build files were put in their respective subdirectories, e.g. the Geary
engine library will be built from the Meson file in `src/engine`.
* `--fatal-warnings` is no longer an explicit flag, as Meson provides
`-Dwerror=true` for this.
* An explicit resource file needs to be used. The issue to support this from
Meson itself can be found at https://github.com/mesonbuild/meson/issues/706 .
* The `gnome.yelp()` function parses a LINGUAS file so we no longer need to keep
track of all languages in our build system.
* There are no Debian scripts defined in the meson.build files to keep them
clean, but they can be kept as separate scripts in `build-aux`.
* Left out the `dist` target as there is now `ninja dist`
* `geary-docs` is disabled by default, as valadoc-0.38.3 returns errors.
https://bugzilla.gnome.org/show_bug.cgi?id=777044
Bug 763203.
This enables the two-arg form of fts3_tokenizer in SQLite for the Geary
databases, used set the custom unicodesn tokeniser for full-text message
search. The two-arg form was disabled by default in 3.11 for secuity
reasons, but can be programmatically enabled in 3.12.
Note that this does not fix SQLite 3.11, to do that it must be recompiled
with -DSQLITE_ENABLE_FTS3_TOKENIZER.
* src/sqlite3-unicodesn/static.c (registerTokenizer): Enable two-arg form
of fts3_tokenizer if SQLite >= 3.12 is detected.
* src/sqlite3-unicodesn/CMakeLists.txt: Set SQLITE_3_12 define as needed.
* CMakeLists.txt: Check for both SQLite 3.12 and 3.11, print a warning if
the latter is found.
We use the list of preferred languages for the user at the time of
search table creation to pick the most relevant stemming algorithm for
our search tokenizer. If we don't find a stemmer that matches any
preferred language, we use the English stemming algorithm as the
default.
This is a limited implementation, so please backup your database before
running this search feature branch from now on as we may change things.
It's using a Unicode Snowball stemming tokenizer available from
https://github.com/littlesavage/sqlite3-unicodesn, also handily
available in src/sqlite3-unicodesn in Geary. If you want to look at the
search tables on the command line, cd into the unicodesn source folder,
run make and make install, then load sqlite3 like:
sqlite3 -cmd '.load unicodesn.sqlext' /path/to/geary.db