It's possible that new projects will want to use this module, which brings the "what flavor to use" questions. Autoconf seems the most natural but the problem with Autoconf's #undef is that it prevents having genuine #undef directives, for example, if we need to tweak some auto-defined macros. We could use either #cmakedefine or #mesondefine but them having a different build system hardcoded in their makes the idea feel inelegant.
So perhaps we should provide our own flavor and a special directive (#autodefine)? We could also switch to the strict substitution mode in this flavor.