After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 794324 - Port to meson build system
Port to meson build system
Status: RESOLVED OBSOLETE
Product: libchamplain
Classification: Core
Component: General
unspecified
Other All
: Normal enhancement
: ---
Assigned To: libchamplain-maint
libchamplain-maint
Depends on:
Blocks: 782980
 
 
Reported: 2018-03-14 11:51 UTC by Martin Blanchard
Modified: 2018-05-22 13:02 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Plug Champlain annotation warnings (946 bytes, patch)
2018-03-14 13:45 UTC, Martin Blanchard
none Details | Review
Port to meson build system (23.09 KB, patch)
2018-03-14 17:11 UTC, Martin Blanchard
none Details | Review

Description Martin Blanchard 2018-03-14 11:51:22 UTC
meson is a build system focused on speed an ease of use, which helps speeding up the software development [1].

Porting attempt development branch is on GitLab [2].

[1] https://wiki.gnome.org/Initiatives/GnomeGoals/MesonPorting
[2] https://gitlab.gnome.org/martinblanchard/libchamplain/tree/wip/mablanch/meson
Comment 1 Martin Blanchard 2018-03-14 13:45:23 UTC
Created attachment 369673 [details] [review]
Plug Champlain annotation warnings
Comment 2 Martin Blanchard 2018-03-14 17:11:04 UTC
Created attachment 369684 [details] [review]
Port to meson build system

Should be mostly complete. Comments are welcome!

Despite naming being really consistent across the package, there seems to be a few oddities in current libchamplain:
 * Package identification string isn't the same everywhere, sometimes 'libchamplain' is used but some other times 'champlain' seems to be preferred:
   - Within 'include' & 'gtk-doc': 'libchamplain-0.12' & 'libchamplain-gtk-0.12'
   - Within 'pkgconfig' & 'vala': 'champlain-0.12' & 'champlain-gtk-0.12'
 * Within 'include', libchamplain and libchamplain-gtk get installed in two different directories *and* subdirectories. Having everything in one directory and two subdirectories would have be enough I think.
 * libchamplain-gtk introspected namespace is GtkChamplain. Guess ChamplainGtk would have been more appropriate/consistent...

Anyway, things that need to be sorted out:
* Package string in 'include' turns to 'champlain-0.12' & 'champlain-gtk-0.12': shouldn't be a problem as pkg-config files points them. Can be changed back to 'libchamplain-0.12' & 'libchamplain-gtk-0.12' if required.
* Package string in 'gtk-doc' turns to 'champlain-0.12' & 'champlain-gtk-0.12': shouldn't be a problem either, Can be changed back to 'libchamplain-0.12' & 'libchamplain-gtk-0.12' if required.
* libchamplain-gtk introspected namespace is left unmodified: changing it would break API compatibility.
* Vala demo application doesn't get build: is this necessary? If yes, we'll need to find a meson way of building it without hard requiring Vala.
* Anything more I could have miss should go here...
Comment 3 Martin Blanchard 2018-03-15 08:52:06 UTC
Also, no Memphis support.
Comment 4 Jiri Techet 2018-03-18 20:34:28 UTC
Martin, thanks a lot - really great job!!! Now this is my first contact with meson so I don't really feel qualified to review the patches but from what I've seen, everything seems pretty great.

A few comments below.

(In reply to Martin Blanchard from comment #2)
> Created attachment 369684 [details] [review] [review]
> Port to meson build system
> 
> Should be mostly complete. Comments are welcome!
> 
> Despite naming being really consistent across the package, there seems to be
> a few oddities in current libchamplain:
>  * Package identification string isn't the same everywhere, sometimes
> 'libchamplain' is used but some other times 'champlain' seems to be
> preferred:
>    - Within 'include' & 'gtk-doc': 'libchamplain-0.12' &
> 'libchamplain-gtk-0.12'
>    - Within 'pkgconfig' & 'vala': 'champlain-0.12' & 'champlain-gtk-0.12'
>  * Within 'include', libchamplain and libchamplain-gtk get installed in two
> different directories *and* subdirectories. Having everything in one
> directory and two subdirectories would have be enough I think.

Yeah, one might really be enough.

>  * libchamplain-gtk introspected namespace is GtkChamplain. Guess
> ChamplainGtk would have been more appropriate/consistent...

Yeah, this is the "heritage" and definitely good points to keep in mind if there ever is a 1.0 release...

> 
> Anyway, things that need to be sorted out:
> * Package string in 'include' turns to 'champlain-0.12' &
> 'champlain-gtk-0.12': shouldn't be a problem as pkg-config files points
> them. Can be changed back to 'libchamplain-0.12' & 'libchamplain-gtk-0.12'
> if required.
> * Package string in 'gtk-doc' turns to 'champlain-0.12' &
> 'champlain-gtk-0.12': shouldn't be a problem either, Can be changed back to
> 'libchamplain-0.12' & 'libchamplain-gtk-0.12' if required.

What is the end-game plan with the meson build system? Will the autotools build be dropped completely or will the two co-exist? Your naming seems to be better and more like other libraries but if autotools build should remain, their outputs should be the same (and the autotools install directories should be changed to match meson).

> * libchamplain-gtk introspected namespace is left unmodified: changing it
> would break API compatibility.
> * Vala demo application doesn't get build: is this necessary? If yes, we'll
> need to find a meson way of building it without hard requiring Vala.

Would be nice to be able to build it to make sure vapi generation works alright. But there doesn't have to be any auto-detection of valac presence and there could be just a configure flag that would enable/disable it.

I've also noticed that the following gets installed now
prefix/share/vala/vapi/*.deps
which wasn't the case before. Not really an issue, just a difference I noticed.

> Also, no Memphis support.

No problem at the moment - I might add it in the future to learn meson a bit.

I have also noticed that the documentation gets generated during the install phase instead of the build phase. Is that intentional?
Comment 5 GNOME Infrastructure Team 2018-05-22 13:02:43 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/libchamplain/issues/37.