gen_scmversion.bat (863B)
1 @echo off 2 3 SET VERSIONFILE="scmversion.cpp" 4 FOR /F "tokens=* USEBACKQ" %%g IN (`git rev-parse HEAD`) do (SET "HASH=%%g") 5 FOR /F "tokens=* USEBACKQ" %%g IN (`git rev-parse --abbrev-ref HEAD`) do (SET "BRANCH=%%g") 6 FOR /F "tokens=* USEBACKQ" %%g IN (`git describe --dirty`) do (SET "TAG=%%g") 7 FOR /F "tokens=* USEBACKQ" %%g IN (`git log -1 --date=iso8601-strict "--format=%%cd"`) do (SET "CDATE=%%g") 8 9 SET SIGNATURELINE=// %HASH% %BRANCH% %TAG% %CDATE% 10 SET /P EXISTINGLINE=< %VERSIONFILE% 11 12 IF "%EXISTINGLINE%"=="%SIGNATURELINE%" ( 13 ECHO Signature matches, skipping writing %VERSIONFILE% 14 EXIT 15 ) 16 17 ECHO Updating %VERSIONFILE% with %TAG%... 18 19 (ECHO %SIGNATURELINE% 20 ECHO const char* g_scm_hash_str = "%HASH%"; 21 ECHO const char* g_scm_branch_str = "%BRANCH%"; 22 ECHO const char* g_scm_tag_str = "%TAG%"; 23 ECHO const char* g_scm_date_str = "%CDATE%"; 24 )>%VERSIONFILE% 25 26 EXIT 27