this post was submitted on 11 Sep 2024
828 points (98.1% liked)

196

16410 readers
1650 users here now

Be sure to follow the rule before you head out.

Rule: You must post before you leave.

^other^ ^rules^

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[โ€“] colin@lemmy.uninsane.org 2 points 1 month ago* (last edited 1 month ago) (1 children)

so, i try to build a CMake project, i know i'm going to be tearing my hair out for a day. i'll need the reference open just to know whether pkg_check_modules(A B) is searching for library A and assigning that to variable B or vice versa. and i know that once i do get it compiling, it'll be another day before i can get it cross compiling from my desktop to my arm chromebook or mobile phone.

so i find a similar project written in meson, where a = find_dependency(b) is immediately obvious to me, and i can make sense of the thing or even tweak it a bit without a manual, just by following the patterns. i build it first try; 80% chance it cross compiles already -- 20% chance it doesn't and i can fix that and send the fix upstream (and now 81% of meson projects cross compile).

the CMake camp: "but we all already know CMake, this new meson thing doesn't make anything easier for us. cross compiling? that's called QEMU." and they're totally right about both of those things. but that's useless for me.

sure, it'd be nice if the GTK/KDE split (for example) didn't lead to so much duplication of the non-GUI parts. but if you just say "no splitting" that's the same as saying "you half go find some other hobby". it's really not an easy thing to sort through all the little differences and steer things such that everyone can feel at home in the same project. that's work, and unless you're BDFL it means a whole lot of drawn-out discussions trying to convince everyone to change their ways for someone else's sake.

[โ€“] _____@lemm.ee 1 points 1 month ago

I use CMake and I hate CMake, it's the true write once and forget language.

The real problem is C++ missing what cargo is to rust.

Unfortunately we're in too deep, everyone has their preferences and they're very strongly opinionated about them, maybe some rightfully so.