Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/Build.cmd @ 14890

Last change on this file since 14890 was 7594, checked in by abeham, 13 years ago

#1722: changed build script to use Build instead of Rebuild (all of a sudden it didn't work anymore on two of my machines). I added an option if the solution should be cleaned before building.

File size: 2.6 KB
RevLine 
[4863]1@ECHO OFF
2
[7594]3SET CLEANBEFOREBUILD=
[4919]4
5SET SELECTED=
6SET CONFIGURATION=
7SET PLATFORM=
8
9IF "%~1"=="" GOTO :prompt_solution
10
11SET SELECTED=%1
12IF NOT EXIST %SELECTED% (
13  ECHO Solution file %SELECTED% could not be found.
14  GOTO :end
15)
16ECHO Building solution %SELECTED% ...
17GOTO :config_selection
18
19:prompt_solution
[4863]20SET /A COUNT=0
21FOR /F "tokens=*" %%A IN ('dir /B *.sln') DO (
[4919]22  CALL :forloopbody "%%A"
23)
[4863]24
[4873]25IF "%COUNT%"=="1" (
26  SET SELECTED=%SOLUTIONS.1%
27  ECHO Building %SOLUTIONS.1% as it is the only solution that was found ...
[4919]28  GOTO :config_selection
29)
[4873]30
[4863]31ECHO Found the following solutions:
32FOR /F "tokens=2* delims=.=" %%A IN ('SET SOLUTIONS.') DO ECHO %%A = %%B
33ECHO.
[4919]34SET /P SOLUTIONINDEX=Which solution to build? Type the number:
[4863]35
36SET SELECTED=""
37FOR /F "tokens=2* delims=.=" %%A IN ('SET SOLUTIONS.') DO (
[4919]38  IF "%%A"=="%SOLUTIONINDEX%" SET SELECTED=%%B
39)
[4863]40
41IF %SELECTED%=="" GOTO :eof
42
[4919]43:config_selection
44IF "%~2"==""  GOTO :prompt_config
45
46SET CONFIGURATION=%~2
47ECHO Building configuration %CONFIGURATION% ...
48GOTO :platform_selection
49
50:prompt_config
[7087]51SET /P CONFIGURATION=Which configuration to build [Release]:
52IF "%CONFIGURATION%"=="" SET CONFIGURATION=Release
[4919]53
54:platform_selection
55IF "%~3"=="" GOTO :prompt_platform
56 
57SET PLATFORM=%~3
58ECHO Building platform %PLATFORM% ...
[7594]59GOTO :clean
[4919]60
61:prompt_platform
[4863]62SET /P PLATFORM=Which platform to build [Any CPU]:
63IF "%PLATFORM%"=="" SET PLATFORM=Any CPU
64
[7594]65:clean
66IF "%~4"=="" GOTO :prompt_clean
67
68SET CLEANBEFOREBUILD=%~4
69GOTO :main
70
71:prompt_clean
72SET /P CLEANBEFOREBUILD=Would you like to clean before building [n]:
73IF "%CLEANBEFOREBUILD%"=="" SET CLEANBEFOREBUILD=n
74
[4919]75:main
[4863]76REM First find the path to the msbuild.exe by performing a registry query
[4873]77FOR /F "tokens=1,3 delims=   " %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0"') DO (
78  IF "%%A"=="MSBuildToolsPath" SET MSBUILDPATH=%%B)
[4863]79
80REM Then execute msbuild to clean and build the solution
81REM Disable that msbuild creates a cache file of the solution
82SET MSBuildUseNoSolutionCache=1
83REM Run msbuild to clean and then build
[7594]84IF "%CLEANBEFOREBUILD%" NEQ "n" (
[4922]85  ECHO Cleaning ...
[4924]86  %MSBUILDPATH%msbuild.exe %SELECTED% /target:Clean /p:Configuration="%CONFIGURATION%",Platform="%PLATFORM%" /m:2 /nologo /verbosity:q /clp:ErrorsOnly
[4919]87)
[4922]88ECHO Building ...
[7594]89%MSBUILDPATH%msbuild.exe %SELECTED% /target:Build /p:Configuration="%CONFIGURATION%",Platform="%PLATFORM%" /m:2 /nologo /verbosity:q /clp:ErrorsOnly
[4863]90
[4922]91ECHO.
92ECHO DONE.
93
[4919]94:end
95
[4863]96PAUSE
97
98GOTO :eof
99
100REM This workaround is necessary so that COUNT gets reevaluated
101:forloopbody
102SET /A COUNT+=1
103SET SOLUTIONS.%COUNT%=%1
[4924]104GOTO :eof
Note: See TracBrowser for help on using the repository browser.