EDIT: I remember being amazed when Go came out circa 2011 that I could just "go build" a project and it just worked. One had to understand "GOPATH" which was slightly counterintuitive but not too bad, and of course it wasn't reproducible (both of those problems are pretty much addressed nowadays via modules), but I was blown away that I could actually just "go build" or "go test" and focus on my application code instead of my project tooling.
For example, Go's build system for C (cgo) is configured by stitching together environment variables and magical comments:
// #cgo CFLAGS: -DPNG_DEBUG=1
// #cgo amd64 386 CFLAGS: -DX86=1
// #cgo LDFLAGS: -lpng
// #include <png.h>
import "C"
As bad as CMake is, that is even worse. Imagine making that stuff portable!CMake has major problems (package management and language, as you say) but I don't know of any other tool that solves the problem that CMake solves.