summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rw-r--r--build/make_ver_stable.bat40
1 files changed, 40 insertions, 0 deletions
diff --git a/build/make_ver_stable.bat b/build/make_ver_stable.bat
new file mode 100644
index 0000000000..f94f659717
--- /dev/null
+++ b/build/make_ver_stable.bat
@@ -0,0 +1,40 @@
+@echo off
+cd /d %~dp0
+
+for /F "tokens=2,3" %%i in (..\include\m_version.h) do if "%%i"=="MIRANDA_VERSION_FILEVERSION" (set OldVer=%%j)
+for /F %%i in ('git rev-list --count HEAD') do set Revision=%%i
+for /F %%i in ('git rev-parse --short HEAD') do set Hash=%%i
+
+REM Fix building not-svn repository (e.g., Git mirror)
+if "%Revision:~0,11%" == "Unversioned" (set Revision=0)
+REM Fix building when svnversion tool is not installed
+if "%Revision%" == "" (set Revision=0)
+REM Fix trailing 'M', when the working copy contains modifications
+if "%Revision:~-1%" == "M" (set Revision=%Revision:~0,-1%)
+
+for /F "tokens=1,2,3 delims= " %%i in (build.no.stable) do call :WriteVer %%i %%j %%k %Revision% %Hash%
+goto :eof
+
+:WriteVer
+echo %1.%2.%3.%4.%5
+if "%OldVer%" == "%1,%2,%3,%4" (goto :eof)
+
+for /f "delims=/ tokens=1-3" %%a in ("%DATE:~4%") do (
+ for /f "delims=:. tokens=1-4" %%m in ("%TIME: =0%") do (
+ set TempFileName=%TEMP%\basename-%%c-%%b-%%a-%%m%%n%%o%%p
+ )
+)
+
+copy m_version.h.in "%TempFileName%"
+
+echo #define MIRANDA_VERSION_FILEVERSION %1,%2,%3,%4 >> "%TempFileName%"
+echo #define MIRANDA_VERSION_STRING "%1.%2.%3.%4" >> "%TempFileName%"
+echo #define MIRANDA_VERSION_DISPLAY "%1.%2.%3 build #%4 (%5)" >> "%TempFileName%"
+echo #define MIRANDA_VERSION_DWORD MIRANDA_MAKE_VERSION(%1, %2, %3, %4) >> "%TempFileName%"
+echo #define MIRANDA_VERSION_CORE MIRANDA_MAKE_VERSION(%1, %2, %3, 0) >> "%TempFileName%"
+echo #define MIRANDA_VERSION_CORE_STRING "%1.%2.%3" >> "%TempFileName%"
+echo. >> "%TempFileName%"
+echo #endif // M_VERSION_H__ >> "%TempFileName%"
+
+move /Y "%TempFileName%" ..\include\m_version.h
+goto :eof