Earlier quoted context omitted.
Yes, basically any build system that supports distributed caching use digest instead of timestamp when checking modification: Bazel, Pants, Buck, etc. They're all hugely complex though. For local build only, I think SCons and Waf both use hash for changes detection.
Any build system is overly generic and it's up to the user to define how things should be built. So what happens is that at the end of the day every project ends up with a poorly made build system layered on top of a third-party generic tool but without abstracting away its complexity or abstractions. My opinion is that a build system should figure out on its own how to build files, that is its job. The last thing I…
I've been on both end of this situation and would rather not do it again, so I'll use whatever is the de-facto standard, but you do you.