3 ms·
Yeah I don't see the value proposition of Meson to be all that compelling. It's basically just CMake, but with a different DSL. I've never had a problem with mo
by bogwog 4y ago
Yeah I don't see the value proposition of Meson to be all that compelling. It's basically just CMake, but with a different DSL. I've never had a problem with modern CMake, and whatever minor productivity benefits there might be from Meson are far outweighed by the popularity of CMake.
Even if Meson is more "powerful", there are other build systems out there that are better options than either of these.
- tristan957 4y agoPerhaps you shed some light on what the better build systems are? Meson is much more than just a different DSL. What is the CMake standard option for toggling between library types? What is the CMake standard option for toggling lto? What is the CMake standard option for enabling sanitizers? Meson standardizes so much behavior. I can go to any project and immediately be able to configure a build with the parameters that I want.
- IAmLiterallyAB 4y agoDon't know about the others but for LTO on CMake there is https://cmake.org/cmake/help/latest/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.html https://cmake.org/cmake/help/latest/prop_tgt/INTERPROCEDURAL...
- slavik81 4y ago> What is the CMake standard option for toggling between library types? -DBUILD_SHARED_LIBS=<ON,OFF> > What is the CMake standard option for toggling lto? -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=<ON,OFF> > What is the CMake standard option for enabling sanitizers? There isn't one, sadly. Though, you can set CXXFLAGS to configure whatever behaviour you want.
- bogwog 4y ago> Perhaps you shed some light on what the better build systems are? To clarify, I mean "better" for complex tasks. Build systems are just tools like any other, meaning they're good at some things, but bad at others. CMake (and Meson) are good for simpler build scenarios, but when you need complexity they're a poor choice. For that you're better off with scons, waf, bazel, ant, buck, gradle, etc. > Meson is much more than just a different DSL. What is the CMake standard option for toggling between library types? What is the CMake standard option for toggling lto? What is the CMake standard option for enabling sanitizers? > Meson standardizes so much behavior. I can go to any project and immediately be able to configure a build with the parameters that I want. Again, my issue with Meson is that it doesn't bring anything substantially new to the table to justify it. Having a nicer DSL isn't enough, and having some built in toggles for common things isn't enough. The fact that you happen to be more comfortable with Meson doesn't make it objectively better than CMake. Figuring out how to enable LTO and sanitizers for a CMake project might take a few minutes of Googling at most. A new dev who has never encountered either of these might instinctively prefer Meson's syntax, but the wiser decision is to learn the (vastly) more mature and prolific CMake, and then not have to worry about it. Time spent on the build system is time not spent on the project.
- bloppe 4y agoPopularity is a double edged sword. There's more stuff done with cmake but that means more legacy to support which can prevent innovation. Meson is able to build on the lessons learned from cmake. Ultimately, it doesn't make sense to worry too much about picking one or the other though.
- junon 4y ago> It's basically just CMake, but with a different DSL ... and loads of extra dogma about how projects should be structured that don't match reality, paired with a rude and dismissive BDFL maintainer.
- germandiago 4y agoDid you use both extensively? Or you just talk from a-priori opinion by the looks? I spent a ton of time adjusting toolchains and doing string handling, regex handling or command invocations with escapes, lists vs strings etc. in CMake. Dnt get me started with options vs set in CMake and caching... The waste of time was so massive and frustrating that I ended up moving to Meson. It is working remarkably better.