Skip to content

Commit 25847a6

Browse files
committed
WIP
1 parent 7be23e5 commit 25847a6

1 file changed

Lines changed: 37 additions & 19 deletions

File tree

build.cmd

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,52 +6,70 @@ REM GET VERSION FROM GIT TAG
66
REM ================================
77
for /f %%v in ('git describe --tags --abbrev^=0') do set VERSION=%%v
88

9-
echo Building version %VERSION%
9+
echo Raw version from git: %VERSION%
1010

11-
REM Convert x.y.z or x.y.z.w → x,y,z,w
12-
for /f "tokens=1-4 delims=." %%a in ("%VERSION%") do (
11+
REM Strip leading "v" if present
12+
set VERSION_RAW=%VERSION%
13+
if "%VERSION_RAW:~0,1%"=="v" set VERSION_RAW=%VERSION_RAW:~1%
14+
15+
echo Using version: %VERSION_RAW%
16+
17+
REM ================================
18+
REM PARSE VERSION INTO NUMERIC FORM
19+
REM ================================
20+
for /f "tokens=1-4 delims=." %%a in ("%VERSION_RAW%") do (
1321
set MAJOR=%%a
1422
set MINOR=%%b
1523
set PATCH=%%c
1624
set BUILD=%%d
1725
)
1826

1927
if "%BUILD%"=="" set BUILD=0
28+
2029
set VERSION_NUMERIC=%MAJOR%,%MINOR%,%PATCH%,%BUILD%
2130

2231
echo Numeric version: %VERSION_NUMERIC%
2332

2433
REM ================================
25-
REM LOCATE MSBUILD
34+
REM GENERATE version.h
2635
REM ================================
27-
for /f "tokens=2,*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0" /v MSBuildToolsPath 2^>nul') do (
28-
set MSBUILDPATH=%%b
29-
)
36+
echo #pragma once> version.h
37+
echo #define VER_FILEVERSION %VERSION_NUMERIC%>> version.h
38+
echo #define VER_FILEVERSION_STR "%VERSION_RAW%">> version.h
39+
echo #define VER_PRODUCTVERSION %VERSION_NUMERIC%>> version.h
40+
echo #define VER_PRODUCTVERSION_STR "%VERSION_RAW%">> version.h
3041

31-
if not exist "%MSBUILDPATH%msbuild.exe" (
32-
for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe"`) do (
33-
set MSBUILDPATH=%%i
34-
)
42+
echo Generated version.h:
43+
type version.h
44+
45+
REM ================================
46+
REM LOCATE MSBUILD.EXE (C++-capable)
47+
REM ================================
48+
set MSBUILD_EXE=
49+
50+
for /f "usebackq tokens=*" %%i in (`
51+
"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" ^
52+
-latest -requires Microsoft.Component.MSBuild ^
53+
-find MSBuild\**\Bin\MSBuild.exe
54+
`) do (
55+
set MSBUILD_EXE=%%i
3556
)
3657

37-
if not exist "%MSBUILDPATH%" (
38-
echo ERROR: MSBuild not found.
58+
if "%MSBUILD_EXE%"=="" (
59+
echo ERROR: C++-capable MSBuild.exe not found.
3960
exit /b 1
4061
)
4162

42-
echo Using MSBuild: %MSBUILDPATH%
63+
echo Using MSBuild: %MSBUILD_EXE%
64+
4365

4466
REM ================================
4567
REM BUILD
4668
REM ================================
47-
"%MSBUILDPATH%" ColorCop.sln ^
69+
"%MSBUILD_EXE%" ColorCop.sln ^
4870
/t:Rebuild ^
4971
/p:Configuration=Release ^
5072
/p:Platform=Win32 ^
51-
/p:ProductVersion=%VERSION% ^
52-
/p:FileVersion=%VERSION% ^
53-
/p:NumericVersion=%VERSION_NUMERIC% ^
5473
/m
5574

5675
exit /b %errorlevel%
57-

0 commit comments

Comments
 (0)