57 lines
1.4 KiB
Batchfile
57 lines
1.4 KiB
Batchfile
@echo off
|
|
SETLOCAL
|
|
|
|
set origdir=%cd%
|
|
cd /d %~dp0..\..
|
|
set base_dir=%cd%
|
|
cd /d %origdir%
|
|
|
|
|
|
if exist "C:\Program Files\Git\usr\bin\sed.exe" ( set SED="C:\Program Files\Git\usr\bin\sed.exe")
|
|
if exist "C:\Program Files (x86)\Git\bin\sed.exe" ( set SED="C:\Program Files (x86)\Git\bin\sed.exe")
|
|
|
|
if %SED% == "" (
|
|
echo can not find sed.exe
|
|
goto :end
|
|
)
|
|
|
|
SETLOCAL EnableDelayedExpansion
|
|
FOR /F "tokens=1 delims=" %%A in ('git describe --tags --long') do SET current_tag=%%A
|
|
FOR /F "tokens=1 delims=" %%A in ('echo !current_tag! ^| !sed! "s/v[0-9]*\.[0-9]*-\([0-9]*\).*/\1/"') do SET commits_since_tag=%%A
|
|
|
|
call :setVersion %base_dir%\Source\Project64\version.h !commits_since_tag!
|
|
call :setVersion %base_dir%\Source\nragev20\version.h !commits_since_tag!
|
|
call :setVersion %base_dir%\Source\RSP\version.h !commits_since_tag!
|
|
call :setVersion %base_dir%\Source\Glide64\version.h !commits_since_tag!
|
|
|
|
ENDLOCAL
|
|
|
|
goto :eof
|
|
|
|
:setVersion
|
|
set version_file=%~1
|
|
set out_file=%~1.out
|
|
set build_no=%~2
|
|
|
|
if exist "%out_file%" del "%out_file%"
|
|
|
|
SETLOCAL DisableDelayedExpansion
|
|
FOR /F "usebackq delims=" %%a in (`"findstr /n ^^ %version_file%"`) do (
|
|
set "line=%%a"
|
|
SETLOCAL EnableDelayedExpansion
|
|
set "line=!line:9999=%build_no%!"
|
|
set "line=!line:*:=!"
|
|
echo(!line!>>!out_file!
|
|
ENDLOCAL
|
|
)
|
|
ENDLOCAL
|
|
|
|
if exist "%out_file%" (
|
|
if exist "%version_file%" (
|
|
del "%version_file%"
|
|
move "%out_file%" "%version_file%"
|
|
)
|
|
)
|
|
|
|
goto :eof
|