Skip to content
Commit 68b41e39 authored by Sam Thursfield's avatar Sam Thursfield Committed by Sam Thursfield
Browse files

Meson build instructions for Tracker

See <http://mesonbuild.com/> for information about Meson.

Remaining issues:

  * There's no `make dist` equivalent. We currently produce release
    tarballs containing the output files of the Vala compiler. We need
    to think through whether we can stop doing that. Shipping the
    generated .c files does make the Vala preprocessor useless so
    it would be good if we can stop.

  * The Firefox, Thunderbird, Evolution and Nautilus plugins are not
    built

  * https://github.com/mesonbuild/meson/issues/671 -- means we can't
    depend on tracker_common_dep in most places and have to manually
    set link_with, include_directories and sources instead.

  * https://github.com/mesonbuild/meson/issues/1469 -- without this we
    have to install generated Vala headers using a script

  * https://github.com/mesonbuild/meson/issues/1229 -- means adding
    the #include guard to libtracker-sparql/tracker-generated-no-checks.h
    is a pain

  * The test suite has some spurious failures.

Here's a rough speed comparison.

Meson:
        time sh -c 'meson .. --prefix=/opt/tracker-meson -D bash_completion=/opt/tracker-meson/share/bash-completion -Dsystemd_user_services=/opt/tracker-meson/lib/systemd/user -Ddbus_services=/opt/tracker-meson/share/dbus-1/services && ninja-build -j 4 && ninja-build install'

        real  1m8.194s
        user  2m16.962s
        sys   0m20.532s

Autotools:
        time sh -c './configure --prefix=/opt/tracker-autotools --with-bash-completion-dir=/opt/tracker-autotools/share/bash-completion --with-session-bus-services-dir=/opt/tracker-autotools/share/dbus-1/services --disable-nautilus-extension && make -j 4 && make install'

        real  2m37.750s
        user  4m37.214s
        sys   0m54.806s

        Plus 30+ seconds of ./autogen.sh first.

Note that Meson builds may fail if your source tree has generated files
from an Autotools build in there. If you see errors about duplicate
definitions, first try cleaning your source tree (use `git clean -dfx`,
but make sure you commit any work first!!)
parent 20c715e2
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment