4 ms·
But oth, nothing is better at dealing with edge cases and weird things than writing your build scripts in an actual programming language. All that an integrated
by flohofwoe 1y ago
But oth, nothing is better at dealing with edge cases and weird things than writing your build scripts in an actual programming language. All that an integrated C++ build system would do is add a new std::build API, and for the compiler to discover a build.cpp file, compile and run that to perform the build. All the interesting "build system stuff" stuff would be implemented as regular stdlib code.
See Zig for a working example of that idea (which also turned out to be a viable cmake replacement for C and C++ projects)
It could even be reduced to compiler vendors agreeing on a convention to compile and run a build.cpp file. Everything else could live in 3rd party code shipped with a project.
- bluGill 1y agoReal build systems need to deal with any language. Cargo is a negative on large projects because it has opinions that make things easy for small rust only projects and falls flat on complex projects- good build systems need to bea real programming language. The more declaritive the better - this is different from the project that often should be a different style
- flohofwoe 1y agoAs long as the build system can run external programs, you're really not limited to a single language (or even compiling source code). In the end build systems are just fancy task runners, no matter if they are integrated with a language toolchain or separate products.
- bluGill 1y agoSortof. If the build system doesn't understand the dependencies you have inefficient builds as it can't schedule all cores effectively at all times. On a large complex project this matters