ManimCommunity / ManimPango

Binding for Pango, to use with Manim.
https://manimpango.manim.community
MIT License
43 stars 13 forks source link

Using Meson Build System #45

Closed naveen521kk closed 3 years ago

naveen521kk commented 3 years ago

Currently we are setuptools like any other python project, which is fine, but I am strangely attracted to Meson, as a build system. Meson is fast, other than that only feature I see, which is so hard to do with setuptools is that we can create C programs to for the testsuites. What I mean is we can write C programs to generate SVG files and compare it with what we generate. That should surely work because we are generating things in the same environment and testing the same.

While doing this would mean maintaining two different build system, one setuptools and other Meson, but I think Meson setup scripts are so easy to maintain than what we do at setuptools, also meson has subprojects, which in a way helps the users to build pango while installing manimpango, say they are on old linux, this may help.

Thoughts about it @PhilippImhof ?

PhilippImhof commented 3 years ago

I have absolutely no opinion on this topic, because I have never used Meson. Having two build systems to maintain seems a bad idea to me, however.

naveen521kk commented 3 years ago

Having two build systems to maintain seems a bad idea to me, however.

Indeed yes, meson is so new to python, so we can't use it to create wheels. But still has its own advantages though. I would only do it when we absolutely need it.

naveen521kk commented 3 years ago

I think this would help a lot. Let me see if I can build wheels from meson itself. If I can do that this would be the best approach in long run. This is mainly because builds started to fail today, and I got a feel that this won't happen if we are using meson. Let's see. We may be some the early adoptors of meson as a build system for a python project, but that's fine.

naveen521kk commented 3 years ago

I am planing to implement this in #48.

naveen521kk commented 3 years ago

Feels like there are lot of things that are not going to work with this setup, so I think I am not going to do that.

naveen521kk commented 2 years ago

Looks like scipy has moved to Meson now. https://github.com/scipy/scipy/pull/14847

rgommers commented 2 years ago

Wheel creation still has sharp edges, but we plan to fix that over the next weeks/months. Unless you're in a hurry I would recommend to wait for a bit till we've tested everything for SciPy.

naveen521kk commented 2 years ago

Wheel creation still has sharp edges, but we plan to fix that over the next weeks/months. Unless you're in a hurry I would recommend to wait for a bit till we've tested everything for SciPy.

Thanks, yeah we would probably wait for SciPy to actually make a release with meson support and wheels built with meson. Also, wish you a happy new year 🎉 .

rgommers commented 2 years ago

You too, happy new year!