5 ms·
Are there any stories/articles on why people chose meson, over say CMake (or others)? I do like meson much more than CMake for sure, sane syntax and all.
by malkia 4y ago
Are there any stories/articles on why people chose meson, over say CMake (or others)? I do like meson much more than CMake for sure, sane syntax and all.
- hawski 4y agoFor me a little disadvantage of Meson is that it is implemented in Python. With my interest in minimal systems and bootstrapping I would hope that it would get to be reimplemented in something easier to bootstrap or (maybe preferable) Python environment/version problems would get solved before the wider adoption. I understand, that it may not be as much a problem for others.
- aurelian15 4y agoFor what it is worth, there is Muon, a third-party implementation of Meson written in C99 [1]. Haven't used it myself yet, though Muon has been in steady development over the last few years, and the developers claim that they implement the vast majority of the Meson core features. [1] https://sr.ht/~lattis/muon/ https://sr.ht/~lattis/muon/
- mdaniel 4y agoI was going to try replacing the KeePassXC build (which is one of the more complicated CMake builds I've had hand-to-hand with) to see what that experience would be like, but they report all the Qt flavors are unsupported: https://muon.build/releases/edge/docs/status.html https://muon.build/releases/edge/docs/status.html I'm aware I could just vanilla Meson but I was specifically interested in kicking the tires on the dbg in Muon since CLion just recently added debugging to CMake and I wanted to compare and contrast
- endgame 4y agoBootstrapping is something I care about a lot, too, and keeps me on GNU Autotools. Have you found any other options?
- winter_squirrel 4y ago[dead]
- tristan957 4y agoMuon[1] is a reimplementation of Meson in C. You should really read the blog post that you are commenting on. 1: https://sr.ht/~lattis/muon/ https://sr.ht/~lattis/muon/
- mdaniel 4y ago> muon analyze - a static analyzer for meson.build files. Capable of doing type inference, checking unused variables, undeclared variables, etc. Whoa, that's fancy! That whole project seems neat, thanks for pointing it out
- tristan957 4y agoIt even has a debugger and an auto formatter. Meson is getting an auto formatter in https://github.com/mesonbuild/meson/pull/10971 https://github.com/mesonbuild/meson/pull/10971.
- chombier 4y ago> type inference This means muon can fairly easily implement user-defined functions without making the language Turing complete. If they did this I would happily (re)consider switching from CMake.
- tristan957 4y agoYou should read the blog post you are commenting on.
- hawski 4y agoWhat do you mean? It is not a blog post, those are release notes, that do not seem to me to be relevant to my comment.
- ironman1478 4y agoI'll say that I use Meson primarily due to the syntax. It's significantly easier to read, which leads to easier maintainability. For example, we started a new project and I wrote the build scripts in Meson. Then a team member had to come in an extend it and they were able to add onto the build with basically no assistance. I've never had this experience with CMake. I also really like wrapDB. It's made it easy to adopt some common libraries, like fmt. I'll say though, this projects I've worked on that use mesonDB were relatively small and encroaching on medium size projects. For large projects with complicated builds, I would've chosen something like bazel (and it's what our company has done).
- germandiago 4y agoIn Medium I posted some years back this, it is four articles: https://www.google.com/url?q=https://germandiagogomez.medium.com/getting-started-with-meson-build-system-and-c-83270f444bee&sa=U&ved=2ahUKEwi_5vaV7JH8AhWIF4gKHaKxBtEQFnoECAYQAg&usg=AOvVaw2jKPxwkTlvc-jrUFJ6bX5W https://www.google.com/url?q=https://germandiagogomez.medium...
- malkia 4y agoThank you!
- germandiago 4y agohtttps://germandiagogomez.medium.com/getting-started-with-meson-build-system-and-c-83270f444bee&sa=U&ved=2ahUKEwi_5vaV7JH8AhWIF4gKHaKxBtEQFnoECAYQAg&usg=AOvVaw2jKPxwkTlvc-jrUFJ6bX5W