diff --git a/build.cmd b/build.cmd index f2df47c..d72b240 100644 --- a/build.cmd +++ b/build.cmd @@ -1,6 +1,5 @@ @echo off -set DEFS= set DIR_ROOT=%~dp0. set DIR_PROGMGR=%DIR_ROOT%\progmgr set DIR_RELEASE=%DIR_ROOT%\release @@ -8,18 +7,22 @@ set DIR_RELEASE=%DIR_ROOT%\release rmdir /S /Q "%DIR_RELEASE%" > nul 2>&1 if not exist "%DIR_RELEASE%" mkdir "%DIR_RELEASE%" +git rev-parse HEAD > %DIR_RELEASE%\.git_hash +set /P GIT_HASH=<%DIR_RELEASE%\.git_hash +set "GIT_HASH=%GIT_HASH:~0,8%" + if "%1" == "debug" ( - set CL=/MT /Od /Zi /RTC1 /Fdprogmgr.pdb /fsanitize=address /DUNICODE %DEFS% + set CL=/MT /Od /Zi /RTC1 /Fdprogmgr.pdb /fsanitize=address /DUNICODE /DPROGMGR_GIT_HASH="%GIT_HASH%" set LINK=/DEBUG ) else ( - set CL=/O1 /GS- /DUNICODE /DNDEBUG /DPROGMGR_NO_CRT %DEFS% + set CL=/O1 /GS- /DUNICODE /DNDEBUG /DPROGMGR_NO_CRT /DPROGMGR_GIT_HASH="%GIT_HASH%" set LINK=/NODEFAULTLIB /OPT:REF /OPT:ICF ) pushd "%DIR_RELEASE%" -rc /nologo /i "%DIR_PROGMGR%" "%DIR_PROGMGR%\lang\dlg_en-US.rc" -rc /nologo /i "%DIR_PROGMGR%" "%DIR_PROGMGR%\lang\res_en-US.rc" -rc /nologo /i "%DIR_PROGMGR%" "%DIR_PROGMGR%\resource.rc" +rc /nologo /DPROGMGR_GIT_HASH="""%GIT_HASH%""" /i "%DIR_PROGMGR%" "%DIR_PROGMGR%\lang\dlg_en-US.rc" +rc /nologo /DPROGMGR_GIT_HASH="""%GIT_HASH%""" /i "%DIR_PROGMGR%" "%DIR_PROGMGR%\lang\res_en-US.rc" +rc /nologo /DPROGMGR_GIT_HASH="""%GIT_HASH%""" /i "%DIR_PROGMGR%" "%DIR_PROGMGR%\resource.rc" cl /nologo /W3 /WX /MP /Feprogmgr.exe ^ "%DIR_PROGMGR%\*.c" ^ "%DIR_PROGMGR%\resource.res" ^ diff --git a/progmgr/resource.rc b/progmgr/resource.rc index 65fc50d..65b0f4f 100644 --- a/progmgr/resource.rc +++ b/progmgr/resource.rc @@ -57,7 +57,7 @@ BEGIN VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR "\0" VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR "\0" VALUE "ProductName", VER_PRODUCTNAME_STR - VALUE "ProductVersion", VER_PRODUCTVERSION_STR "\0" + VALUE "ProductVersion", "git-" PROGMGR_GIT_HASH "\0" END END BLOCK "VarFileInfo"