GNOME Bugzilla – Bug 787634
Port to meson build system
Last modified: 2018-07-16 15:00:10 UTC
meson is a build system focused on speed an ease of use, which helps speeding up the software development.
Created attachment 359731 [details] [review] Move telepathy account widgets to subprojects This patch updates telepathy-account-widgets module location from source root to subprojects directory, which helps porting to meson.
Did you also port telepathy-account-widgets to Meson? Just like Empathy, I'd suggest leaving telepathy-account-widgets alone. I'd rather drop the whole Telepathy support in GOA, if that's what it takes for porting to Meson.
Created attachment 359732 [details] [review] Port to meson build system Patch that adds meson build system along autotools. It needs an unreleased version of meson (0.43.0), which includes `annotate`[0] and `docbook`[1] support for `gdbus-codegen`. Although telepathy support can be enabled, is disabled on purpose on meson's options as it needs meson support on `telepathy-account-widgets` module[1]. There is one minor issue, which doesn't affect the building process at all, with the 'goa-generated.h' header file which is not installed because meson's `gdbus-codegen` function does not support installing the generated files. Is this file used by any software? I have not been able to find any. Finally, I've recently started doing some "benchmarks" with meson and autotools. Here are some raw numbers: - autotools + make: time (./autogen.sh --prefix=/tmp/goa --enable-debug=yes --enable-compile-warnings=yes --enable-documentation --enable-gtk-doc --disable-telepathy --enable-backend --enable-inspector --enable-exchange --enable-flickr --enable-foursquare --enable-google --enable-imap-smtp --enable-media-server --enable-owncloud --enable-facebook --enable-todoist --enable-windows-live --enable-pocket --enable-kerberos --enable-lastfm; make install) real 2m25,265s user 2m2,687s sys 0m12,824s - meson + ninja: time (~/Development/meson/meson.py --prefix=/tmp/goa --libdir=lib -Denable-backend=true -Denable-inspector=true -Denable-documentation=true -Denable-gtk-doc=true _build; ninja -C _build install) real 0m38,212s user 1m16,560s sys 0m5,317s [0] https://github.com/mesonbuild/meson/pull/2266 [1] https://github.com/mesonbuild/meson/pull/2302 [2] https://bugzilla.gnome.org/show_bug.cgi?id=786969
(In reply to Debarshi Ray from comment #2) > Did you also port telepathy-account-widgets to Meson? Just like Empathy, I'd > suggest leaving telepathy-account-widgets alone. I'd rather drop the whole > Telepathy support in GOA, if that's what it takes for porting to Meson. I'm sorry as I didn't noticed the message until now as I was in the process of generating the patches and writing proper comments, which takes a bit :) Yes, telepathy-account-widgets is ported[0] and I have also made some changes so it's fits gnome-online-accounts needs[1], which in the other hand, they are totally unnecessary if telepathy-account-widgets is finally removed. Although I have been testing the meson port several times, actually I haven't tried telepathy-account-widgets support on gnome-online-account's meson port. It's only theoretically implemented and I have always build gnome-online-accounts without telepathy support. It is based on other implementations so it probably works. At the moment is disabled by default on purpose. [0] https://bugzilla.gnome.org/show_bug.cgi?id=786969 [1] https://bugzilla.gnome.org/show_bug.cgi?id=786969#c5
Created attachment 359734 [details] [review] Port to meson build system Minor update to meson build port which adds meson build files to autotools build files so they are also packed when the distributable package is generated.
Created attachment 359735 [details] [review] Remove autotools Some applications are removing autotools to avoid the burden of maintaining two build systems. This patch removes autotools in case it is considered.
Finally, I have created a wip branch[0] to ease it's testing. Any suggestion would be very much appreciated. [0] https://git.gnome.org/browse/gnome-online-accounts/log/?h=wip/inigomartinez/meson
I'm thinking on resuming the work with the meson port by rebasing the current master. Debarshi Ray, would this be a good time to merge this feature?
(In reply to Iñigo Martínez from comment #8) > I'm thinking on resuming the work with the meson port by rebasing the > current master. > > Debarshi Ray, would this be a good time to merge this feature? Yeah, I am in the middle of removing the git submodule (bug 795322). I am aiming to finish that before releasing 3.29.1 today or tomorrow.
Created attachment 371115 [details] [review] build: Port to meson build system After the removal of telepathy (bug 795322), I have updated the old meson port patch. This patch doesn't include meson build files as part of autotools distributable files.
Created attachment 371116 [details] [review] build: Remove autotools Due to the previous changes, I have also rebased the patch to remove autotools.
I would like to point out that this meson port requires meson 0.46, which has not been released yet, due to a missing feature regarding `gdbus-codegen`[0]. However, the developer version in github[1] can be used to build `gnome-online-accounts`. I have also updated the wip branch[2] that also includes the patch at bug 787638. [0] https://github.com/mesonbuild/meson/pull/2930 [1] https://github.com/mesonbuild/meson.git [2] https://git.gnome.org/browse/gnome-online-accounts/log/?h=wip/inigomartinez/meson
This has now moved to GitLab: https://gitlab.gnome.org/GNOME/gnome-online-accounts/merge_requests/2