执行此操作的常用方法是使用m4_esyscmd.例如,autoconf在build-aux中分发一个脚本,该脚本从git repo生成一个版本号,并调用AC_INIT:
AC_INIT([GNU Autoconf], m4_esyscmd([build-aux/git-version-gen .tarball-version]), [bug-autoconf@gnu.org])
你可以经常离开而不分发脚本并做一些简单的事情:
AC_INIT([Package name], m4_esyscmd([git describe --dirty | tr -d '\012']), [bug-report-address])
而不是git-describe,使用您想要生成版本号的任何命令.一个重要的细节是它不应该有一个尾随换行符(因此跟随git-describe的tr).
此技术的一个主要缺点是版本号仅在运行autoconf时生成.
将此添加到configure.ac:
AM_CONDITIONAL([IS_HG_REPO], [test -d "$srcdir/.hg"])
Run Code Online (Sandbox Code Playgroud)
将以下行添加到Makefile.am:
if IS_HG_REPO
AM_CPPFLAGS = -DHGVERSION="\"$(PACKAGE) `hg parents --template 'hgid: {node|short}'`\""
else
AM_CPPFLAGS = -DHGVERSION=PACKAGE_STRING
endif
Run Code Online (Sandbox Code Playgroud)
这将定义HGVERSION为表单的字符串,APPNAME hgid: 24d0921ee4bd或者APPNAME VERSION,如果从发布tarball构建.
| 归档时间: |
|
| 查看次数: |
1429 次 |
| 最近记录: |