我正在使用 OpenGL Loader Generator 为我的项目生成 GL 函数加载代码。它生成 gl_loader.h 和 gl_loader.c。我的其他一些源文件依赖于 gl_loader.h,但不是全部,所以我需要 cmake 在编译其余代码之前(重新)运行 glLoadGen,否则编译会因为尝试编译而停止在 gl_loader.h 构建之前依赖于 gl_loader.h 的文件。我已将 GENERATED 属性添加到 gl_loader.h/.c 但这并不是该属性旨在解决的问题,并且它不起作用。
在这种情况下,我可以简单地将 OBJECT_DEPENDS 属性添加到我的所有源文件中,因为我几乎不需要重新运行 glLoadGen。但在其他情况下,这会导致过多不必要的重新编译,例如当 GObjectBuilder (gob2) 生成多个 C 源文件和头文件时。手动计算出哪些 C 文件取决于哪个生成的头文件是不切实际的。
在这种情况下,另一种可能性是在配置时而不是构建时运行 glLoadGen,但这不适用于 gob2 的其他场景。
有没有其他方法可以告诉 cmake 在编译其他代码之前它必须运行 glLoadGen ?