mirror of
https://github.com/vgmstream/vgmstream.git
synced 2024-11-14 18:47:39 +01:00
64 lines
1.8 KiB
Batchfile
64 lines
1.8 KiB
Batchfile
@echo off
|
|
setlocal enableextensions enabledelayedexpansion
|
|
|
|
REM creates or updates version_auto.h
|
|
REM params: $1=filename (usually version_auto.h), $2=VARNAME (usually VGMSTREAM_VERSION)
|
|
|
|
|
|
REM defaults
|
|
set VERSION_DEFAULT=unknown
|
|
set VERSION_FILE=%1
|
|
set VERSION_NAME=%2
|
|
if "%~1" == "" set VERSION_FILE=version_auto.h
|
|
if "%~2" == "" set VERSION_NAME=VGMSTREAM_VERSION
|
|
|
|
if not "%VERSION%"=="" set VERSION=!VERSION:^:=_!
|
|
cd /d "%~dp0"
|
|
|
|
|
|
REM try get version from Git (dynamic)
|
|
:get_version_git
|
|
for /f %%v in ('git describe --always') do set VERSION=%%v
|
|
if not "%VERSION%"=="" set VERSION=!VERSION:^:=_!
|
|
if "%VERSION%"=="" goto :get_version_h
|
|
if %VERSION%==%VERSION_DEFAULT% goto :get_version_h
|
|
set LINE=#define %VERSION_NAME% "%VERSION%" /* autogenerated */
|
|
goto :got_version
|
|
|
|
|
|
REM try to get version from version.h (static)
|
|
:get_version_h
|
|
echo Git version not found, can't autogenerate version (using default)
|
|
set LINE=#define %VERSION_NAME% "%VERSION_DEFAULT%" /* autogenerated */
|
|
if exist "version.h" (
|
|
for /F "tokens=*" %%v in (version.h) do (
|
|
set TOKEN=%%v
|
|
REM set COMP=#define %VERSION_NAME% #todo
|
|
if /i "!TOKEN:~0,25!"=="#define VGMSTREAM_VERSION" set LINE=%%v
|
|
)
|
|
)
|
|
goto :got_version
|
|
|
|
|
|
REM avoid overwritting if contents are the same, as some systems rebuild on timestamp
|
|
:got_version
|
|
set LINE_ORIGINAL=none
|
|
if exist %VERSION_FILE% set /p LINE_ORIGINAL=<%VERSION_FILE%
|
|
if not "%LINE%"=="%LINE_ORIGINAL%" (
|
|
REM no spaces!
|
|
echo %LINE%>%VERSION_FILE%
|
|
)
|
|
goto :exit
|
|
|
|
REM * alt full file comp test
|
|
REM echo %LINE% > %VERSION_FILE%_temp
|
|
REM echo n | comp %VERSION_FILE%_temp %VERSION_FILE% > NUL 2> NUL
|
|
REM if not errorlevel 1 goto :got_version_done
|
|
REM copy /y %VERSION_FILE%_temp %VERSION_FILE% > NUL 2> NUL
|
|
REM :got_version_done
|
|
REM del %VERSION_FILE%_temp
|
|
REM :exit
|
|
|
|
REM done
|
|
:exit
|