有没有办法从 CMake 获取构建元数据?

Is there a way to get build metadata from CMake?

我有一个用 CMake 构建的项目。我希望能够做类似的事情:

cmake .. --generate-metadata

理想情况下,这将创建一个描述 CMake 将要执行的操作的输出文件。类似于 this email to the CMake mailing list:

中描述的内容
[
   "name" : "testc1"
   "sources" : ["foo.cpp", "bar.cpp"]
   "defines" : ["BUILD_TEST=1", "QT_CORE_LIB"]
   "includes" : ["/opt/bat/include", "/usr/include/qt5"]
   "extraDefines" : {
     "foo.cpp" : ["EXTRA_FOO=1"]
   }
]

阅读那封电子邮件后 post,我认为这还不是 CMake 的原生部分。 CMake generators 看起来他们可能是这里的门票,但我似乎不能在运行时指定一个新的生成器?生成器可以通过某些 API/SDK/tooling 插入,还是需要编译?

-DCMAKE_EXPORT_COMPILE_COMMANDS=ON 参数正是我所需要的。