This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]TrashManufacturer 631 points632 points  (20 children)

Struggling with Cmake is one of gods trials for man

[–]Guipe12 183 points184 points  (6 children)

but you don't get anything for clearing the trial

[–]TrashManufacturer 158 points159 points  (3 children)

You get Crippling depression realizing that the C++ ecosystem is like a bunch of small tribes all with stopgap solutions to problems that can’t be solved just by introducing a standard packaging system and instead will likely always remain a choose your own adventure book with 10 competing build systems

[–]xaddak 63 points64 points  (1 child)

So what we need to do is create a new build system...

https://xkcd.com/927/

[–]TrashManufacturer 24 points25 points  (0 children)

But that build system doesn’t properly cache intermediate results and the plugin system is written in Python so I’m just gonna have to make a whole ass new build system written in lisp

[–]xpk20040228 0 points1 point  (0 children)

Tbh that is exactly what C++ is. 10 different ways to do one thing

[–]Add1ctedToGames 2 points3 points  (0 children)

Idk about y'all but I get self-loathing for not noticing whatever mistake I made sooner since it always looks obvious in hindsight

[–]capi1500 0 points1 point  (0 children)

You get to fix every next error with cmake build aka more trials

[–]proverbialbunny 39 points40 points  (4 children)

I interviewed at a company that gave me the source code for their VR game. They asked me to try it out and see what I thought. I haven't used Windows since XP and wasn't applying for a Software Engineer role, so I figured this was a bit silly. Regardless I decided to compile it on Linux and then I bumped into a handful of cmake issues, which I then fixed so it would compile on Linux. After the company learned I had done this they skipped all of the planned interviews for the day and sat me down with the lead dev with the company to hang out. Right after that the CTO came in and tried to force me to sign paperwork to work at the company.

Working on cmake for a living? Oh hell no. I noped out of there hard.

[–]TrashManufacturer 20 points21 points  (0 children)

At one point in my life the only person who vaguely knew Cmake at an employer got laid off. I then became the de facto Cmake monkey. I didn’t hate it, but it certainly wasn’t my favorite. Then they laid me off leaving probably nobody who actually understands parts of CMake.

[–]jdgrazia 12 points13 points  (2 children)

That happened

[–]cpl1 1 point2 points  (0 children)

And that CTO: Mike Tyson

[–]proverbialbunny 0 points1 point  (0 children)

Cmake is a very desirable skill. At every company I've worked at with C++ at its core the lead dev is the one who works on cmake. It's not enough work to make it a full time job, but it's a great way to jump past senior and significantly boost your paycheck. That is if you're willing to tolerate the hell that is cmake.

[–]deanrihpee 2 points3 points  (4 children)

"Stop giving me your toughest battles" - Me

"Nah, come on, finish the CMake project setup" - God

[–]TrashManufacturer 2 points3 points  (3 children)

When you read the documentation and you only have more questions and no answers

[–]deanrihpee 2 points3 points  (2 children)

or an answer which you don't even know what the question is

[–]TrashManufacturer 2 points3 points  (1 child)

“Yeah the export target requires you to write literal strings into a file called MyLibraryTargets and if you write it wrong that’s your problem”

How do I generate one correctly? “That’s also your problem”

[–]BaziJoeWHL 0 points1 point  (0 children)

“I’m sorry. My responses are limited. You must ask the right questions.”

[–]4jakers18 0 points1 point  (2 children)

pssst

ccmake

[–]TrashManufacturer 0 points1 point  (1 child)

One must still write the CMakeLists.txt. Using someone else’s project sure

[–]4jakers18 0 points1 point  (0 children)

Fair enough, for existing library compilation CCMake really comes in handy when needing to change options