Which will probably be never.
I mean, all cmake does is run some commands for you. You not understanding cmake errors (mostly) means you don’t understand the errors given to you by the C/C++ compiler.
Partly, yes. But I also think their documentation is a bit hard do read. Maybe this will get better with time.
I use distcc, and do not have to take vacation for my programs to finish compiling.
Life is and will always be better writing your own Makefiles. It’s literally so easy. I do not get the distaste. Cmake is arcane magic. Bazel is practically written in runes. Makefile is a just a glorified build script, but where you don’t have to use a bunch of if statements to avoid building everything each time.
Manual makefiles don’t scale though and you end up needing some other bootstrap framework pretty quick.
That works until you need to support Visual Studio or Xcode. Then you either maintain their stuff manually too, or you get CMake to generate all three. I don’t love it but it solves the problem it’s meant to solve. The issue is people using it when they don’t need to.
I’m not familiar with either why can’t you use Make with VS or Xcode? Can you not set them up to have whatever build bind call Make ?
That’s like one thing ML can actually help with XD cute cat
I forgot to assign a variable, now it crashes %5 of the time. It’s wild how c doesn’t default variables to null or something.
C does exactly what you tell it, no more. Why waste cycles setting a variable to a zero state when a correct program will set it to whatever initial state it expects? It is not user friendly, but it is performant.
Except that this is wrong. C is free to do all kinds of things you didn’t ask it to, and will often initialize your variables without you writing it.
Machine code would be a better example of what he’s talking about imo. Not an expert or anything of course.
default variables to null or something
That is such a bad idea. Better to have the compiler warn you about it like in Rust, or have the linter / IDE highlight it.
If it’s going to compile without any warnings I’d rather the app crash rather than continue execution with rogue values as it does now.
There is so much room for things like corrupted files or undocumented behavior until it crashes. Without the compiler babysitting you it’s a lot easier to find broken variables when they don’t point to garbage.
Just enable all compiler warnings (and disable the ones you don’t care about), a good C compiler can tell you about using unassigned variables.
This was solved by moving to bazel. It’s a bit more verbose and resource heavy, but the language is sane and how you structure your build code makes a lot of sense
I have legitimately never met a single person in real life who has anything positive to say about bazel, and I assume it it because they have all killed themselves.
Based on this comment*, I’ll migrate a large project to bazel now. I’ll report how it goes.
- disclaimer: the comment just pushed me over the edge
Good luck, from my experience with bazel it may go smooth if you have someone who can into bazel to help you, and you create the project from scratch to then maintain small changes. Then there was my attempt to migrate an existing Java project to bazel without external help that failed hard (maybe the situation improved from 2021).
Not sure about java, but I migrated a fairly big c++ project knowing only the basics of Bazel. Disclaimer: I know the codebase extremely well and we don’t have any third party dependencies and the code is c++ and some python generators, validators, etc (which fits the bill for Bazel perfectly)
What I found super hard were toolchains. It’s very verbose to define a toolchain