git 리비전 c++ 매크로 만들기
git 저장소 리비전을 c++ 매크로로 만드는 방법
템플릿 파일
// git_revision.h.template
#ifndef _GIT_REVISION_H_
#define _GIT_REVISION_H_
#define GIT_REVISION "$COMMIT_HASH$"
#endif
생성 배치 파일
rem get git commit hash
set COMMIT_HASH_TEMP=git_commit_hash.tmp
if exist %COMMIT_HASH_TEMP% del %COMMIT_HASH_TEMP%
git rev-parse --verify HEAD > %COMMIT_HASH_TEMP%
set /p GITHASH_TMP= < %COMMIT_HASH_TEMP%
set HEADER_TEMPLATE=git_revision.h.template
set HEADER_FILE_TMP=git_revision.h.tmp
set HEADER_FILE=git_revision.h
::if exist %HEADER_FILE% del %HEADER_FILE%
powershell.exe "(Get-Content %HEADER_TEMPLATE%) -replace '\$COMMIT_HASH\$', '%GITHASH_TMP%' | Out-File -encoding ASCII %HEADER_FILE_TMP%"
fc %HEADER_FILE_TMP% %HEADER_FILE%
if %errorlevel% equ 0 exit /b 0
echo F | xcopy %HEADER_FILE_TMP% %HEADER_FILE% /y /d
if exist %COMMIT_HASH_TEMP% del %COMMIT_HASH_TEMP%
exit /b 0
:ERROR
if exist %COMMIT_HASH_TEMP% del %COMMIT_HASH_TEMP%
exit /b 1