With C++ you can choose to ditch the old garbage and use just the new comfy stuff in a greenfield project.
With CMake, the new stuff still sucks.
Doesn't Bazel / Buck do a better job? The only downside might be IDE integration outside of Google / Facebook but I think there's effective polyfills that generate compile_commands.json.