I've used CMake for many years. But now that I've discovered Meson, I cry a little every time I have to edit a CMakeLists.txt file.
CMake only helps a little bit (it's still very old and has way too many warts). But Meson is very pleasant to work with.
CMake is very easy to use, if you do things properly with targets. include_directories and link_libraries should never never ever be used, use target_include_directories and target_link_libraries instead. This way there is no need to mess about with shell script style variables for dependencies. But so many resources online explain to people how to do things the wrong way, and so their libs end up being a pain to build or depend on.
I did a large project conversion last year and was well into it before I started getting a feel for how everything fit together with Public/Private.
Which is often unavoidable if you want to do filesystem stuff.