Have you ever been working on a really large product? If you have ever worked with C++, C#, or Java programming languages you've definitely been involved in writing build scripts for make, make, maven, babel, or other, possibly even custom-developed build systems. And that's... That's a pain in the ass... Really, more is needed to code the project, you are also coding how to build the project. These scripts tend to grow in size to the extent that it does not look like a simple collection of source file path sets but rather a framework with its own rules. If the application is cross-platform things become much worse: rules are complicated, workarounds increase drastically, and eventually, your build system becomes a risky component of the whole product itself. If you do not understand the pain, just check out an Unreal Engine build system which is a custom build system written in C#, or check an O3DE cmake build scripts , or, for example, Mozilla Build System (I like how
Thoughts on programming, software design and software development process