12bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian@echo off
22bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
32bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniansetlocal enableextensions enabledelayedexpansion
42bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
52bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfor /f %%v in ('git --git-dir="%~dp0..\.git" describe --tags --match "v*"') do set version=%%v
62bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
72bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianif not "%version%"=="" goto :gotversion
82bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
92bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianif exist "%~dp0..\version.mk" goto :getversion
102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianecho Git cannot be found, nor can version.mk. Generating unknown version.
122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianset version=unknown
142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniangoto :gotversion
162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian:getversion
182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianfor /f "delims== tokens=2" %%v in (%~dps0..\version.mk) do set version=%%v
202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianset version=!version:^"=!
222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianset version=!version: =!
232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian:gotversion
252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianset version_out=#define %2 "%version%"
272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianset version_mk=%2 = "%version%"
282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianecho %version_out%> "%1_temp"
302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianif %version%==unknown goto :skipgenerate
322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianecho # static version string; update manually every release.> "%~dp0..\version.mk"
342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianecho %version_mk%>> "%~dp0..\version.mk"
352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian:skipgenerate
372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianecho n | comp "%1_temp" "%1" > NUL 2> NUL
392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianif not errorlevel 1 goto exit
412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancopy /y "%1_temp" "%1"
432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian:exit
452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian
462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniandel "%1_temp"
47