如何在AutoConf管理的项目中插入基于GIT的版本



如何为AutoConf项目分配动态的,基于GIT的版本号?AutoConf需要一个静态字符串参数

AC_INIT([Title],[version],[name])

ac_init文档说,可以使用M4提供基于壳的版本。M4超出了我的肯。我想版本软件根据此命令的结果

version=`git describe --abbrev=7 --dirty --always --tags`

这会产生类似4.6.6-alpha07-9-ga3e01a8的东西。

我可能不了解高水平的答案。我需要一个解决方案并将其粘贴到您的autoconf.ac和/或acinclude.m4。

任何帮助。

怎么样:

AC_INIT([Title], [m4_esyscmd_s([git describe --abbrev=7 --dirty --always --tags])])

应该为您工作。

AC_INIT版本中仅在m4_esyscmd中运行git describe,仍然需要一些东西:

  • 如果您构建Dist Tarball,可以使用什么版本?这里根本没有git describe有用的输出。

  • 如果您刚刚进行了更改,可以使用什么版本?您是否从git describe更新configure版本,或者只是继续使用现有版本构建?

对于我自己的包装(例如ndim-utils(,我已经解决了这些问题(还有一些(

  • 具有特殊的build-helpers/package-version脚本,该脚本确定从version-stamp文件中使用的版本,或git describeconfigure.ac AC_INITm4_esyscmd脚本。

  • 拥有一个特殊的build-helpers/package-version.mk,要包括从顶级Makefile.am中生成用于DIST TARBALLS的version-stamp文件,检查当前git describe输出是否与configure存储的内容有所不同,还有其他一些内容。

  • 具有GNUmakefile.in,该CC_19在必要时更新configure内部存储的版本。

我可能已经忘记了该解决方案中解决的一些问题。

我不确定这些脚本已经准备好将其复制到您的项目中,但是我想在这里提到还有一些要考虑的事情。

相关内容

  • 没有找到相关文章

最新更新