Skip to content

Commit

Permalink
support patch numbers in version (#306)
Browse files Browse the repository at this point in the history
  • Loading branch information
Jamiras authored Feb 8, 2019
1 parent 32b10b9 commit 8baa849
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 18 deletions.
29 changes: 16 additions & 13 deletions MakeBuildVer.bat
Original file line number Diff line number Diff line change
@@ -1,41 +1,44 @@
@echo off
setlocal

if not exist MakeBuildVer.bat cd ..

rem === Get the most recent tag matching our prefix ===
git describe --tags --match "RAIntegration.*" > Temp.txt
set /p ACTIVE_TAG=<Temp.txt
set VERSION_MAJOR=0
set VERSION_MINOR=%ACTIVE_TAG:~14,3%
set VERSION_REVISION=%ACTIVE_TAG:~18,-9%
if "%VERSION_REVISION%"=="" set VERSION_REVISION=0
for /f "tokens=1,2 delims=-" %%a in ("%ACTIVE_TAG:~14%") do set VERSION_TAG=%%a&set VERSION_REVISION=%%b
if "%VERSION_REVISION%" == "" set VERSION_REVISION=0

rem === Extract the major/minor/patch version from the tag (append 0s if necessary) ===
for /f "tokens=1,2,3 delims=." %%a in ("%VERSION_TAG%.0.0") do set VERSION_MAJOR=%%a&set VERSION_MINOR=%%b&set VERSION_PATCH=%%c
set VERSION_PRODUCT=%VERSION_MAJOR%.%VERSION_MINOR%

if "%VERSION_MINOR:~0,1%"=="0" set VERSION_MINOR=%ACTIVE_TAG:~15,2%

setlocal
rem === If there are any local modifications, increment revision ===
git diff HEAD > Temp.txt
for /F "usebackq" %%A in ('"Temp.txt"') do set DIFF_FILE_SIZE=%%~zA
if %DIFF_FILE_SIZE% GTR 0 (
set ACTIVE_TAG=Unstaged changes
set VERSION_MODIFIED=1
) else (
set VERSION_MODIFIED=0
set /A VERSION_REVISION=VERSION_REVISION+1
)

rem === If on a branch, append the branch name to the product version ===
git rev-parse --abbrev-ref HEAD > Temp.txt
set /p ACTIVE_BRANCH=<Temp.txt
if not "%ACTIVE_BRANCH%"=="master" (
set VERSION_PRODUCT=%VERSION_PRODUCT%-%ACTIVE_BRANCH%
)

echo #define RA_INTEGRATION_VERSION "%VERSION_MAJOR%.%VERSION_MINOR%.%VERSION_REVISION%.%VERSION_MODIFIED%" > RA_BuildVer.h
rem === Generate a new version file ===
@echo Tag: %ACTIVE_TAG% (%VERSION_TAG%)

echo #define RA_INTEGRATION_VERSION "%VERSION_MAJOR%.%VERSION_MINOR%.%VERSION_PATCH%.%VERSION_REVISION%" > RA_BuildVer.h
echo #define RA_INTEGRATION_VERSION_MAJOR %VERSION_MAJOR% >> RA_BuildVer.h
echo #define RA_INTEGRATION_VERSION_MINOR %VERSION_MINOR% >> RA_BuildVer.h
echo #define RA_INTEGRATION_VERSION_PATCH %VERSION_PATCH% >> RA_BuildVer.h
echo #define RA_INTEGRATION_VERSION_REVISION %VERSION_REVISION% >> RA_BuildVer.h
echo #define RA_INTEGRATION_VERSION_MODIFIED %VERSION_MODIFIED% >> RA_BuildVer.h
echo #define RA_INTEGRATION_VERSION_PRODUCT "%VERSION_PRODUCT%" >> RA_BuildVer.h

rem === Update the existing file only if the new file differs ===
if not exist src\RA_BuildVer.h goto nonexistant
fc src\RA_BuildVer.h RA_BuildVer.h > nul
if errorlevel 1 goto different
Expand All @@ -47,5 +50,5 @@ del src\RA_BuildVer.h
move RA_BuildVer.h src\RA_BuildVer.h > nul
:done


rem === Clean up after ourselves ===
del Temp.txt
6 changes: 3 additions & 3 deletions src/RA_Version.rc
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ END
//

VS_VERSION_INFO VERSIONINFO
FILEVERSION RA_INTEGRATION_VERSION_MAJOR, RA_INTEGRATION_VERSION_MINOR, RA_INTEGRATION_VERSION_REVISION, RA_INTEGRATION_VERSION_MODIFIED
PRODUCTVERSION RA_INTEGRATION_VERSION_MAJOR, RA_INTEGRATION_VERSION_MINOR, RA_INTEGRATION_VERSION_REVISION, RA_INTEGRATION_VERSION_MODIFIED
FILEVERSION RA_INTEGRATION_VERSION_MAJOR, RA_INTEGRATION_VERSION_MINOR, RA_INTEGRATION_VERSION_PATCH, RA_INTEGRATION_VERSION_REVISION
PRODUCTVERSION RA_INTEGRATION_VERSION_MAJOR, RA_INTEGRATION_VERSION_MINOR, RA_INTEGRATION_VERSION_PATCH, RA_INTEGRATION_VERSION_REVISION
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG | RA_INTEGRATION_IS_PRERELEASE
Expand All @@ -69,7 +69,7 @@ BEGIN
BEGIN
VALUE "CompanyName", "retroachievements.org"
VALUE "FileDescription", "RetroAchievements Integration Toolkit"
VALUE "FileVersion", RA_INTEGRATION_VERSION_MAJOR, RA_INTEGRATION_VERSION_MINOR, RA_INTEGRATION_VERSION_REVISION, RA_INTEGRATION_VERSION_MODIFIED
VALUE "FileVersion", RA_INTEGRATION_VERSION_MAJOR, RA_INTEGRATION_VERSION_MINOR, RA_INTEGRATION_VERSION_PATCH, RA_INTEGRATION_VERSION_REVISION
VALUE "InternalName", "RA_Integration"
VALUE "LegalCopyright", "Copyright (C) 2018 retroachievements.org"
VALUE "OriginalFilename", "RA_Integration.dll"
Expand Down
4 changes: 2 additions & 2 deletions src/RA_httpthread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,8 @@ BOOL RequestObject::ParseResponseToJSON(rapidjson::Document& rDocOut)
static void AppendIntegrationVersion(_Inout_ std::string& sUserAgent)
{
sUserAgent.append(ra::StringPrintf("%d.%d.%d.%d", RA_INTEGRATION_VERSION_MAJOR,
RA_INTEGRATION_VERSION_MINOR, RA_INTEGRATION_VERSION_REVISION,
RA_INTEGRATION_VERSION_MODIFIED));
RA_INTEGRATION_VERSION_MINOR, RA_INTEGRATION_VERSION_PATCH,
RA_INTEGRATION_VERSION_REVISION));

if constexpr (_CONSTANT_LOC pos{ std::string_view{ RA_INTEGRATION_VERSION_PRODUCT }.find('-') }; pos != std::string_view::npos)
{
Expand Down

0 comments on commit 8baa849

Please sign in to comment.