a build dependency defines dependencies between objects
add_custom_target(target_name DEPENDS /path/to/objectfile)
by using a file dependency CMake improves compilation performance by avoiding unnecessary recompilation. Or, perhaps the generated build system does that.
apart from offering lots of features and control, a build cache does this as well.
So, how is a compiler cache any different from what Make already does? Is it seen as a replacement or an extension of behaviour?