1bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant@echo off 2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 3f5256e16dfc425c1d466f6308d4026d529ce9e0bHoward Hinnantsetlocal enableextensions enabledelayedexpansion 4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnantfor /f %%v in ('git --git-dir="%~dp0..\.git" describe --tags --match "v*"') do set version=%%v 6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant 7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantif not "%version%"=="" goto :gotversion 8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantif exist "%~dp0..\version.mk" goto :getversion 10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantecho Git cannot be found, nor can version.mk. Generating unknown version. 12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 13bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantset version=unknown 14bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 15bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantgoto :gotversion 16bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 17bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant:getversion 18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantfor /f "delims== tokens=2" %%v in (%~dps0..\version.mk) do set version=%%v 20bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 21bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantset version=!version:^"=! 22bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantset version=!version: =! 23bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 24bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant:gotversion 25bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 26bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantset version_out=#define %2 "%version%" 27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantset version_mk=%2 = "%version%" 28bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 29bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantecho %version_out%> "%1_temp" 30f8f852138f86e4588916021e1afedfcab25298c0Howard Hinnant 31bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantif %version%==unknown goto :skipgenerate 32bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 33bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantecho # static version string; update manually every release.> "%~dp0..\version.mk" 34bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantecho %version_mk%>> "%~dp0..\version.mk" 35bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 36f8f852138f86e4588916021e1afedfcab25298c0Howard Hinnant:skipgenerate 37bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 38bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantecho n | comp "%1_temp" "%1" > NUL 2> NUL 39bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 40bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantif not errorlevel 1 goto exit 41bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 42bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantcopy /y "%1_temp" "%1" 43bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 44bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant:exit 45bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 46bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantdel "%1_temp" 47bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant