git - 如何在 autoconf 管理的项目中插入基于 Git 的版本?

标签 git versioning autotools autoconf m4

如何为 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])])

应该适合你。

关于git - 如何在 autoconf 管理的项目中插入基于 Git 的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43526939/

相关文章:

Git:一个文件夹中有多个子树/子模块?

git - .git 文件夹不包含什么?

Git pull 依赖于当前目录

Python setup.py - 强制更新需求(使用 dependency_link)

linux - 如何在配置中打印 C 宏的值

git - 自安装 Big Sur 以来,无法再通过 HTTPS git 克隆大型存储库

ruby - 为什么 Gemfile 语义版本控制运算符 (~>) 会产生与一个数字不一致的结果?

c++ - 如何在 C++ Autotools 项目中禁用 C 编译器

c++ - 链接器从哪里获得库名?

java - 如何在我们的 java jar 中插入用户可以访问的版本号?