Hacker News new | past | comments | ask | show | jobs | submit login

I happen to have had the more neutral perspective of being a beginner at both.

Meson was easier to pick up. Not nearly as easy as I feel it should be (the idea of a meta build system when you target a single platform has always struck me as insane), but still easier than CMake.




> (the idea of a meta build system when you target a single platform has always struck me as insane)

who targets a single platform in 2022 ? I have honestly never in my professional life worked on non-embedded C++ projects that only targeted one platform (and honestly, even those had to run on host computers with people developing from any host OS, Mac / Win / Linux) ; on the other hand I had a lot of time people ask me to have support for working on the project from either Xcode, Visual Studio or others IDE. How do you do that without a meta-build system?


> who targets a single platform in 2022 ?

Me, in the last 3 jobs I worked on. In fact, the majority of my career targets a single platform. I believe it's common for applications to target only one platform. Even when Windows is the first such platform. Heck, I've even read some advice about re-writing your application instead of trying to make it multi-platform.

Libraries are different, though. And that application you plan to rewrite 3-6 times should probably offload the entire business logic to a truly multi-platform library. So I guess meta-build systems could possibly make some sense there.

Still, what I've seen in practice is an extremely shallow layer of non-abstraction that just hides what actual commands happen under the hood. I know how to call a compiler on the command line, I know its inputs and output, and I can reuse this knowledge when I write a Makefile. CMake, not so much.

> on the other hand I had a lot of time people ask me to have support for working on the project from either Xcode, Visual Studio or others IDE. How do you do that without a meta-build system?

My feeling is that it's not the job of the (meta) build system to support the idiosyncrasies of the latest IDE (or editor) of the day. It's the job of the IDE to provide what users need to call the right build command for the right situation (build debug, build release, clean…). And for fancy stuff like auto-completion and jump to definition, the IDE should provide the necessary magic independently of the actual build system used.

If this independence between the build system and the IDE cannot be achieved, then maybe the language is the problem. I know, people are doing real work and have no time for long term plans. Just, the absence of a short term solution doesn't mean there is no problem.


Lots of places who develop desktop software will develop only on that platform for that target. It might be easier to just maintain a visual studio solution if you're only targeting windows and developing on windows.

Early in my career, I worked on a project that built for 4 platforms, not all x64, and was managed through msbuild, i.e. it just worked in visual studio.


CMake is also a meta build system, so I don't understand your point. Meson targets many platforms, some better than others.

* Visual Studio Projects * Ninja * XCode


Not the GP but I read their point not as pro-Meson but more that both Meson and CMake feel like overkill for a single platform/architecture project.


If you are the only contributor, targeting one compiler, on one platform, then yep, I could see how this might be overkill.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: