[Tracker] Meson build instructions for Tracker



Hello
I've been working on build instructions for Tracker using Meson.
They are now pretty much ready for use!

You can find them in the branch wip/sam/meson:
https://git.gnome.org/browse/tracker/commit/?h=wip/sam/meson

To use, you need to install Meson, which can either be done from Pip
(pip3 install --user meson), from a distro package (but beware that it
might be old), or you can run it right from Git
(git://github.com/mesonbuild/meson).

Then you do something like this:

    mkdir build
    cd build
    meson ..
    ninja-build

You can run the test suite:

    ninja-build test

And `ninja-build install` to install of course.

Meson accepts standard arguments like --prefix, but to change the
Tracker-specific options you need to run mesonconf. Run it in the build
directory with no arguments to see all the available options, and pass
`-D option=value` to set something.

I've compared an install of this with an equivalent Autotools build. So
I'm confident there aren't major regressions, but it does require more
testing. Help with that is appreciated!

Here are a few remaining issues:

      * There's no `make dist` equivalent. We can use `git archive` to
        produce tarballs, but these won't have the .c files generated by
        valac. That said, shipping the generated .c files does make the
        Vala preprocessor useless so it would be good if we can stop,
        but that could break things for downstreams unexpectedly.

      * The Firefox, Thunderbird, Evolution and Nautilus plugins don't
        have Meson build rules. I'm not sure if any of these are actually
        still used, we can easily fix that if they are.

      * Not every single configure flag has an equivalent in meson_options.txt

Meson is still kinda beta quality but it's under active development, the
maintainers are very helpful and responsive and the build is literally
twice as fast than with Autotools. Plus the output is a lot clearer so all the
compile warnings are there.

If you try this, please let me know any issues and I'll be happy try and triage
and hopefully fix them.

Sam


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]