我正在尝试将我的 SVN 修订信息保存到一个宏中,同时通过 Microsoft Visual Studio 的 nmake 制作我的代码。

在 GNU make 中,我执行以下操作:

SVN_REVISION=r$(shell svnversion -n)

所以我得到例如:SVN_REVISION=r10001

这也可以在 Microsoft nmake 中进行吗?

先感谢您。

最佳答案

使用提到的技术以及对 make 的递归调用,可以通过以下方式完成:

!IFNDEF MAKE
MAKE=NMAKE
!ENDIF
!IFNDEF SVN_REVISION
!   IF [echo off && FOR /F "usebackq" %i IN (`svnrevision -n`) DO  SET SVN_REVISION=%i && $(MAKE)      /$(MAKEFLAGS) /nologo /f $(MAKEDIR)\Makefile && exit /b  ] == 0
!     MESSAGE Make completed
!   ELSE
!     ERROR Error in nmake
!   ENDIF
!ELSE
# $(SVN_REVISION) now contains the string returned from the command `svnrevision -n`
!MESSAGE SVN_REVISION is $(SVN_REVISION)
#      Put the parts of the makefile that depend on SVN_REVISION here
!ENDIF
#
# To be a valid makefile it must have some rules to perform
all:
     @echo;$(SVN_REVISION)

10-08 15:17