Things I want to be able to do: 1. Use the same build system for C++, Python, Java, Rust, Golang, etc. Any language should easily plug in. 2. I don't want to have to know exactly which g++/javac/cargo/go commands are being run under the hood. 3. I want to build source code and I also want to "build" release packages, docker containers, compressed asset packs, etc. Anything that starts with files and is "compiled" int…
Gradle fits your description pretty closely.
If you need to "clean" the build system it has failed.