Fix on-demand initialize race conditions [custom-attrs.c] (#18159)
[mono-project.git] / msvc / run-msbuild.bat
blobceb8c0662c90af33140b16b90e34221966157b68
1 :: Set up build environment and run execute msbuild with all supplied arguments.\r
2 \r
3 :: Arguments:\r
4 :: -------------------------------------------------------\r
5 :: %1 Visual Studio target, build|clean, default build\r
6 :: %2 Host CPU architecture, x86_64|i686, default x86_64\r
7 :: %3 Visual Studio configuration, debug|release, default release\r
8 :: %4 Additional arguments passed to msbuild, needs to be quoted if multiple.\r
9 :: %5 Project to build.\r
10 :: -------------------------------------------------------\r
12 @echo off\r
13 setlocal\r
15 set BUILD_RESULT=1\r
17 :: Get path for current running script.\r
18 set RUN_MSBUILD_SCRIPT_PATH=%~dp0\r
20 :: Configure all known build arguments.\r
21 set VS_TARGET=build\r
22 if /i "%~1" == "clean" (\r
23     set VS_TARGET="clean"\r
24 )\r
25 shift\r
27 set VS_PLATFORM=x64\r
28 if /i "%~1" == "i686" (\r
29     set VS_PLATFORM="Win32"\r
30 )\r
31 if /i "%~1" == "win32" (\r
32     set VS_PLATFORM="Win32"\r
33 )\r
34 shift\r
36 set VS_CONFIGURATION=Release\r
37 if /i "%~1" == "debug" (\r
38     set VS_CONFIGURATION="Debug"\r
39 )\r
40 shift\r
42 set VS_TARGET_GC=sgen\r
43 if /i "%~1" == "boehm" (\r
44     set VS_TARGET_GC="boehm"\r
45 )\r
46 shift\r
48 set VS_ADDITIONAL_ARGUMENTS=\r
49 if not "%~1" == "" (\r
50     set VS_ADDITIONAL_ARGUMENTS=%~1\r
51 )\r
52 shift\r
54 set VS_BUILD_PROJ=mono.sln\r
55 if /i not "%~1" == "" (\r
56     set VS_BUILD_PROJ=%~1\r
57 )\r
59 if not exist %VS_BUILD_PROJ% (\r
60     set VS_BUILD_PROJ=%RUN_MSBUILD_SCRIPT_PATH%%VS_BUILD_PROJ%\r
61 )\r
63 :: Setup Windows environment.\r
64 call %RUN_MSBUILD_SCRIPT_PATH%setup-windows-env.bat\r
66 :: Setup VS msbuild environment.\r
67 call %RUN_MSBUILD_SCRIPT_PATH%setup-vs-msbuild-env.bat\r
69 if "%VS_ADDITIONAL_ARGUMENTS%" == "" (\r
70     set "VS_ADDITIONAL_ARGUMENTS=/p:PlatformToolset=%VS_DEFAULT_PLATFORM_TOOL_SET%"\r
71 )\r
73 set VS_BUILD_ARGS=/p:Configuration=%VS_CONFIGURATION% /p:Platform=%VS_PLATFORM% /p:MONO_TARGET_GC=%VS_TARGET_GC% %VS_ADDITIONAL_ARGUMENTS% /t:%VS_TARGET% /m\r
74 call msbuild.exe %VS_BUILD_ARGS% "%VS_BUILD_PROJ%" && (\r
75     set BUILD_RESULT=0\r
76 ) || (\r
77     set BUILD_RESULT=1\r
78     if not %ERRORLEVEL% == 0 (\r
79         set BUILD_RESULT=%ERRORLEVEL%\r
80     )\r
81 )\r
83 exit /b %BUILD_RESULT%\r
85 @echo on