this post was submitted on 02 Dec 2023
122 points (93.0% liked)

linuxmemes

20774 readers
1295 users here now

I use Arch btw


Sister communities:

Community rules

  1. Follow the site-wide rules and code of conduct
  2. Be civil
  3. Post Linux-related content
  4. No recent reposts

Please report posts and comments that break these rules!

founded 1 year ago
MODERATORS
 
all 23 comments
sorted by: hot top controversial new old
[–] ace@lemmy.ananace.dev 46 points 9 months ago (3 children)

People love to complain about CMake, often with valid complaints as well. But it - to this day - remains the only build system where I'll actually trust a project when they say they are cross-platform.

Being the Windows maintainer for OpenMW, it used to be absolute hell back a decade and half ago when an indirect dependency changed - and used something like SCons or Premake while claiming to be "cross-platform", used to be that I had to write my own build solutions for Windows since it was all hardcoded against Linux paths and libraries.

CMake might not be the coolest, most hip, build system, but it delivers on actually letting you build your software regardless of platform. So it remains my go-to for whenever I need to actually build something that's supposed to be used.
For personal things I still often hack together a couple of Makefiles though, it's just a lot faster to do.

[–] uis@lemmy.world 10 points 9 months ago

CMake and meson aren't build systems, they are generators. If you want to use Ninja, just add -G Ninja.

[–] AMDIsOurLord@lemmy.ml 5 points 9 months ago

Cross platform

(*As long as your platform isn't shite)

[–] rostby@lemmy.fmhy.net 0 points 9 months ago (1 children)

Wasn’t WSL supposed to solve this problem

[–] ace@lemmy.ananace.dev 2 points 9 months ago

Not really, WSL seems like it was mainly supposed to stop people leaping ship to be able to develop Node without the horribly painful Windows JS experience. And wouldn't you know it, Microsoft has been making their own JavaScript language in Typescript.

[–] riodoro1@lemmy.world 38 points 9 months ago

CMake has been around forever and is flexible enough to build really complex software. You just need to pull out enough hair when you want it to do something.

[–] possiblylinux127@lemmy.zip 31 points 9 months ago

I'll just use make

[–] 2xsaiko@discuss.tchncs.de 28 points 9 months ago

One of these is not like the others (and it's not CMake).

Also, the syntax is absolutely mental but I like CMake :V

[–] mvirts@lemmy.world 23 points 9 months ago (1 children)

I ❤️ cmake

Probably because I've never developed with ninja or meson 😹

[–] vext01@lemmy.sdf.org 10 points 9 months ago

Cmake can generate ninja.

Dunno why they picked on cmake when autotools exists!

[–] spacesweedkid27@lemmy.world 16 points 9 months ago (1 children)

I fucking hate building tools or package managers like maven because I am too lazy too learn on how to use them.

Not at all are they intentional.

I will just copy the source or some precompiled library from a git and embedd in my project. Try and stop me.

[–] 0x4E4F@infosec.pub 7 points 9 months ago

Meeh, if it works 🤷.

[–] uis@lemmy.world 7 points 9 months ago (1 children)

Why you compile build system with build file generators?

[–] lolcatnip@reddthat.com 2 points 9 months ago (1 children)

If you're compiling something huge like Chrome, having a separate compilation stage for the build files makes sense. For a normal sized project it's overkill.

[–] uis@lemmy.world 1 points 9 months ago

Meson does the same...

[–] Uriah@programming.dev 2 points 9 months ago (1 children)

I'm growing fond of xmake.

Simple language, simple buildscripts.

[–] riodoro1@lemmy.world 6 points 9 months ago (1 children)

And everyone checking out your code is like „what the fuck is this?”.

[–] Uriah@programming.dev 1 points 9 months ago

But it works and the language is well known!

Join the dark side; there are dozens of us!

i thought this was a fortnight meme XD

[–] gon@lemm.ee -2 points 9 months ago (1 children)
[–] b3an@lemmy.world 8 points 9 months ago (1 children)
[–] BlackRing@midwest.social 3 points 9 months ago

I mean... Maybe they saw 'C'make' and then realized.