I mean things like HAVE_LONG_LONG_INT you can't figure out on "configure" stage without parsing config.h in CMake. Also, maybe I am wrong but you can't check 32/64 bit consistent between target postgres and your current environment.
etc and etc
That would just add to the knowledge that developers and committers would need. "One more level of indirection" is rarely the right solution.
A lot of similar projects made this transformation and came to CMake, what problem with Postgres?