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 793842 - Port to meson build system
Port to meson build system
Status: RESOLVED FIXED
Product: gtksourceview
Classification: Platform
Component: General
unspecified
Other All
: Normal enhancement
: ---
Assigned To: GTK Sourceview maintainers
GTK Sourceview maintainers
Depends on:
Blocks: 782980
 
 
Reported: 2018-02-26 14:10 UTC by Martin Blanchard
Modified: 2020-11-13 23:38 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Fix gtksourceview.c includes (905 bytes, patch)
2018-02-26 14:29 UTC, Martin Blanchard
committed Details | Review
Fix gtksourcegutterrenderer.c includes (763 bytes, patch)
2018-02-26 14:29 UTC, Martin Blanchard
committed Details | Review
Port to meson build system (30.03 KB, patch)
2018-02-26 14:46 UTC, Martin Blanchard
none Details | Review
Port to meson build system (30.47 KB, patch)
2018-02-27 14:12 UTC, Martin Blanchard
reviewed Details | Review
Avoid substitutions in gtk-doc's xml content files (8.96 KB, patch)
2018-03-02 15:43 UTC, Martin Blanchard
none Details | Review

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

This is a work in progress port to meson build system, just released for comments. Development branch is on GitLab [2].

[1] https://wiki.gnome.org/Initiatives/GnomeGoals/MesonPorting
[2] https://gitlab.gnome.org/martinblanchard/gtksourceview/tree/wip/mablanch/meson
Comment 1 Martin Blanchard 2018-02-26 14:29:24 UTC
Created attachment 368946 [details] [review]
Fix gtksourceview.c includes
Comment 2 Martin Blanchard 2018-02-26 14:29:51 UTC
Created attachment 368947 [details] [review]
Fix gtksourcegutterrenderer.c includes
Comment 3 Martin Blanchard 2018-02-26 14:46:55 UTC
Created attachment 368948 [details] [review]
Port to meson build system

Work in progress, early comments are welcome.

Thinks that need to be sorted out:
* gtk-doc building is failing: figure out how to deal with xml files that need pre-processing or avoid having to pre-process them.
* Word completion provider does not get introspected: find a elegant way for passing the relative path of the source to generate_gir().
* Due to the introspection problem above, vapi file also is incomplete.
* Test lang-specs and styles do not get installed (as part of installed tests): is it really needed?
* There is probably more.
Comment 4 Martin Blanchard 2018-02-27 14:12:10 UTC
Created attachment 369025 [details] [review]
Port to meson build system

Second version, still work in progress, comments are welcome.

Thinks that need to be sorted out:
* gtk-doc building is failing: figure out how to deal with xml files that need pre-processing or avoid having to pre-process them.
* Test lang-specs and styles do not get installed (as part of installed tests): is it really needed?
* There is probably more.
Comment 5 Sébastien Wilmet 2018-02-27 15:37:48 UTC
Review of attachment 368946 [details] [review]:

++
Comment 6 Sébastien Wilmet 2018-02-27 15:38:09 UTC
Review of attachment 368947 [details] [review]:

++
Comment 7 Sébastien Wilmet 2018-02-27 15:42:42 UTC
Review of attachment 369025 [details] [review]:

Thanks for the initiative!

As soon as GSV 4.0 is released (at the same time as GNOME 3.28), I'll merge the meson patch, the Autotools will still be used, but it's fine to have the meson files in parallel. When the meson build works fine, we can drop all the Autotools files and switch to meson.

For meson I have only one non-standard requirement:

Add this comment at the top of the root meson.build file:

# Convention:
# - Local variables in lower_case.
# - Global variables in UPPER_CASE.
# See: https://github.com/mesonbuild/meson/issues/2607

And follow the convention, it'll make the code easier to understand.
Comment 8 Sébastien Wilmet 2018-02-27 15:44:03 UTC
Review of attachment 369025 [details] [review]:

Thanks for the initiative!

As soon as GSV 4.0 is released (at the same time as GNOME 3.28), I'll merge the meson patch, the Autotools will still be used, but it's fine to have the meson files in parallel. When the meson build works fine, we can drop all the Autotools files and switch to meson.

For meson I have only one non-standard requirement:

Add this comment at the top of the root meson.build file:

# Convention:
# - Local variables in lower_case.
# - Global variables in UPPER_CASE.
# See: https://github.com/mesonbuild/meson/issues/2607

And follow the convention, it'll make the code easier to understand.
Comment 9 Sébastien Wilmet 2018-02-27 15:48:38 UTC
Do you have write access on git.gnome.org?
Comment 10 Ignacio Casal Quinteiro (nacho) 2018-02-27 16:06:43 UTC
Review of attachment 369025 [details] [review]:

You should also add the msvc pragmas. See other meson files for a reference, i.e glib-openssl or libgit2-glib
Comment 11 Sébastien Wilmet 2018-03-02 12:04:37 UTC
Pushed the first two commits:
commit 16db686c0b3170d9ec4d7c7eda4a8e9c0fb1c544
commit 7c22af08fa0ef62c75e2c8ff97cad9c7fb05a320
Comment 12 Martin Blanchard 2018-03-02 15:43:55 UTC
Created attachment 369192 [details] [review]
Avoid substitutions in gtk-doc's xml content files
Comment 13 Sébastien Wilmet 2018-06-28 17:15:29 UTC
I've ported Devhelp to meson. For GtkSourceView I prefer that it follows closely what Devhelp is doing, also for the coding style conventions etc. Of course if you see some possible improvements in Devhelp, comments are welcome.

I also prefer small commits, start simple, and build more stuff is subsequent commits. Don't post a huge commit with the whole build system, nor a branch with 100 commits. If you have e.g. 5 simple commits, I can start the review, so with my early comments you'll better know how to do the rest.
Comment 14 Christian Hergert 2020-11-13 23:38:23 UTC
GtkSourceView uses meson (and only meson) now. Closing.