this post was submitted on 20 Apr 2025
92 points (93.4% liked)

Programmer Humor

35186 readers
373 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
top 16 comments
sorted by: hot top controversial new old
[–] [email protected] 1 points 6 hours ago
[–] [email protected] 25 points 2 days ago (1 children)
[–] [email protected] 3 points 1 day ago (1 children)

Tried multiple attempts to make myself understand CMake with no success. With GNU Make it just explains itself.

[–] [email protected] 4 points 19 hours ago (1 children)

These two are not interchangeable or really even comparable though? Make is a program that generates non-source files from source files, cmake is a high-level tool to generate makefiles.

If you're writing anything more than a completely trivial makefile I would heavily recommend learning cmake. It makes your build system much, much more robust, far easier to maintain, much more likely to work on other systems than your own, and far easier to integrate with other dependent projects.

My primary experience with plain make was when I re-wrote a 2000+ line make-system in a project I maintain with about 200 lines of cmake, because we were setting up some CI that required us to clone and build some dependencies, which was an absolutely PITA to handle cross-platform with plain make, but was trivial with cmake.

PS. The cmake docs suck for anyone that hasn't used cmake for 10 years already.

[–] [email protected] 3 points 6 hours ago* (last edited 6 hours ago)

These two are not interchangeable or really even comparable though?

For GNU Make, yes they are. These are fully comparable tools for writing sophisticated dynamic build systems. "Plain make", not so much.

[cmake] makes your build system much, much more robust, far easier to maintain, much more likely to work on other systems than your own, and far easier to integrate with other dependent projects.

This is absolutely incorrect. I assume (although I have never witnessed it) that a true master of cmake could use it to create a robust, maintainable, transferable build system. Very much like there are people who are able to make delicate ice sculptures using a chainsaw. But in no way does these properties follow from the choice of cmake as a build system (as insinuated in your post), rather, the word we are looking for here is: despite using cmake.

I apologize for my inflammatory language. I may just have a bit of PTSD from having to build a lot of other people's software through multiple layers of meta build systems. And cmake comes back, time and time again, as introducing loads of obstacles.

[–] [email protected] 13 points 1 day ago (1 children)

Even MS hates nmake. Visual Studio has had native support for cmake since 2017.

[–] [email protected] 7 points 1 day ago* (last edited 1 day ago)

Spending time in programmer humour communities, you quickly realize that most memes are based things that are ~ten years old or more.

[–] [email protected] 16 points 2 days ago

Classic microsoft, making the worst possible version of something, and somehow finding a way to force everyone to use it.

[–] [email protected] 10 points 2 days ago (1 children)
[–] [email protected] 12 points 2 days ago (2 children)

The c build system that comes with visual studio. You pretty much have no choice but to use it if you're writting c on windows.

[–] [email protected] 4 points 2 days ago
[–] [email protected] 2 points 2 days ago (2 children)
[–] [email protected] 4 points 2 days ago (1 children)
[–] [email protected] 5 points 2 days ago (1 children)
[–] [email protected] 6 points 2 days ago* (last edited 2 days ago)

Linus Minix

[–] [email protected] 1 points 2 days ago

But you cant use visual studio with it or cabt compile with it, right?

But you can compile with gnu mingwx or smth