+1 for Spack and also EasyBuild.
(and I still don't get the advantages of an advanced build system like bazel, where I first have to build the right version of the build system (including all patches which might crop up with new libcs in vendored dependencies), and then it takes ages to compile (compared to any other similar software...) and I still have to fix the libc bugs...)
It is extremely powerful but also extremely tedious, like programming in MPI.