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 794087 - Port to meson build system
Port to meson build system
Status: RESOLVED OBSOLETE
Product: gtk-doc
Classification: Platform
Component: general
unspecified
Other Linux
: Normal enhancement
: ---
Assigned To: gtk-doc maintainers
gtk-doc maintainers
Depends on:
Blocks: 782980
 
 
Reported: 2018-03-05 14:41 UTC by Martin Blanchard
Modified: 2018-05-22 13:13 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Port to meson build system (19.01 KB, patch)
2018-03-06 10:10 UTC, Martin Blanchard
none Details | Review
Port to meson build system (49.75 KB, patch)
2018-03-12 09:39 UTC, Martin Blanchard
none Details | Review
Port to meson build system (50.10 KB, patch)
2018-05-10 22:24 UTC, Martin Blanchard
committed Details | Review

Description Martin Blanchard 2018-03-05 14:41:21 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/gtk-doc/tree/wip/mablanch/meson
Comment 1 Martin Blanchard 2018-03-06 10:10:12 UTC
Created attachment 369374 [details] [review]
Port to meson build system

Work in progress, early comments are welcome.

Thinks that need to be sorted out:
* Build and check the output of test documentation!
* There is probably more.
Comment 2 Martin Blanchard 2018-03-12 09:39:47 UTC
Created attachment 369567 [details] [review]
Port to meson build system

Still a work in progress, early comments are welcome.

Things that need to be sorted out:
* Some test generated doc does not pass gtkdoc-check: needs investigation.
* Find a better way of passing gtkdoc-scangobj CFLAGS and LDFLAGS...
* Maybe more.
Comment 3 Stefan Sauer (gstreamer, gtkdoc dev) 2018-03-23 21:29:14 UTC
Thanks for looking into this. I am hard working to kill the whole xslt toolchain which will turn gtkdoc into a pure python package and most likely this will become easier. Due to this I don't have much resources for anything beyond, maybe you could come to #gtkdoc and we could discuss this.
Comment 4 Stefan Sauer (gstreamer, gtkdoc dev) 2018-05-06 19:53:59 UTC
For the tests - there are normal unit test and the integration tests. For the later, what about not building them with automake at all.

I made one simplification:
commit b5e8087b420525bd6d86dee2653afda2fa0851db (HEAD -> master, origin/master, origin/HEAD)
Author: Stefan Sauer <ensonic@users.sf.net>
Date:   Sun May 6 21:46:54 2018 +0200

    tests: directly build the integration test modules
    
    Instead of building the via automakes SUBDIR features, call make from
    gtkdoctest.sh. This is isolating the automake dependency a little.


Next'll try to merge sanity.sh into the sh tests for each of the doc modules. Then we could change gtkdoctest.sh to not call "make" for the doc-dir, but instead just run the gtkdoc-xxxx tools directly. make is used to track dependencies, but here we just want to call the tools. If you would like to give this part a go that'd be super helpful.
Comment 5 Stefan Sauer (gstreamer, gtkdoc dev) 2018-05-07 08:19:14 UTC
One more thing. Since you are not removing autotools, both will work in parallel, right. If you can confirm that it is still good (maybe rebase), we could merge this as step one. And then continue with the tests. Sounds like a plan?
Comment 6 Martin Blanchard 2018-05-10 22:24:53 UTC
Created attachment 371915 [details] [review]
Port to meson build system

I've rebased my branch and updated the patch.

Simply run the gtkdoc-xxxx tools directly is that I've been trying to do, using Python helpers scripts for integration, without being very successful so far...
Comment 7 Stefan Sauer (gstreamer, gtkdoc dev) 2018-05-20 11:58:07 UTC
Thanks, I've merged your changes. A silly question, I have only used meson once or twice and like to add a paragraph to the README. 
Could you let me know what one should run to 
1.) build it from git (./autogen.sh && make)
2.) install it (make install)
3.) run tests (make check)
4.) make a release (make dist or make distcheck)

Thanks.
Comment 8 Martin Blanchard 2018-05-20 14:15:17 UTC
Sure! Assuming Ninja (default on linux):

> 1.) build it from git (./autogen.sh && make)

  meson build .

Or with options:

  meson build . --prefix=
  meson build . -Dautoconf_support=false
  meson build . -Dcmake_support=false
  meson build . -Dyelp_manual=false

And then:

  ninja -C build

> 2.) install it (make install)

  ninja -C build install

> 3.) run tests (make check)

  ninja -C build test

> 4.) make a release (make dist or make distcheck)

  ninja -C build dist

http://mesonbuild.com/Quick-guide.html#compiling-a-meson-project
http://mesonbuild.com/Creating-releases.html
Comment 9 Stefan Sauer (gstreamer, gtkdoc dev) 2018-05-21 15:47:19 UTC
Thanks, added to the README. I also restructured the build support files a bit. The build is indeed super fast. I'll look into the tests too.
Comment 10 GNOME Infrastructure Team 2018-05-22 13:13:36 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/gtk-doc/issues/41.