Build systems suck, all of them. They try to solve a real problem but fundamentally the only way to win this game is not to play.
*ducks*
Build systems suck, all of them. They try to solve a real problem but fundamentally the only way to win this game is not to play.
*ducks*
We have spent decades building programming languages that are carefully crafted to make it possible to create reusable abstractions and then expose those abstractions to consumers of your component.
With very few exceptions, almost no build systems try to do this. And the ones that do, do it badly. They hard code logic, or they make people write special-case non-reusable build logic for things that it's quite likely more projects need.
The only build systems people enjoy using are the ones that narrowly scope their problem to something that's easy (e.g. building a single language) and these tend to have a horrible usability cliff as soon as you stray out of their niche.
@nina_kali_nina fortunately they all suck in different ways, so you can choose the set of problems you want to have in each project!