在我的makefile中,CFLAGS添加了以下定义:VERSION=1.2.3.4
这使我能够在代码中获取版本,就像这样:CFLAGS += -DAPP_VERSION=$(VERSION)
#define STR_EXPAND(tok) #tok
#define STR(tok) STR_EXPAND(tok)
int main()
{
cout << "software version is << STR(APP_VERSION) << endl;
}
现在,我想要在doxygen生成的html文件中看到以下内容:
我已经成功将makefile变量导出到doxygen配置文件中,方法如下: (编辑:doxygen是通过'make-doc'目标从makefile调用的)软件的当前版本为1.2.3.4。
但是,如果我尝试在doxygen \mainpage命令中添加类似于这样的内容,它会失败,因为(当然),宏名称不会在注释中扩展...PREDEFINED = APP_VERSION=$(VERSION)
/**
\mainpage this is the doc
Current version is $(APP_VERSION) -- or -- ... is APP_VERSION
*/
问题
你知道一种方法能够在doxygen注释中“扩展”宏吗?这可能可以通过对makefile中保存注释的文件进行一些sed处理来完成,但也许可以直接通过doxygen解决?
除了自动版本控制系统提供的版本控制工具之外,其他项目如何处理版本控制,以使版本ID在文件中得到唯一定义,以便软件构建系统和文档构建系统都能获取?
相关:如何显示定义值