Added support to split GC builds into different build folders.
[mono.git] / msvc / package.bat
1 @ECHO off
2
3 SET PLATFORM=%1
4 SET CONFIG=%2
5 SET BUILD_DIR=%3
6 SET ARGUMENTS=%4
7
8 SET BUILD_DIR=%BUILD_DIR:"=%
9
10 IF "" == "%PLATFORM%" (
11         ECHO Error: No platform parameter set.
12         GOTO ON_ERROR
13 )
14         
15 IF "" == "%CONFIG%" (
16         ECHO Error: No configuration parameter set.
17         GOTO ON_ERROR
18 )
19
20 IF "" == "%BUILD_DIR%" (
21         ECHO Error: No MONO_BUILD_DIR_PREFIX parameter set.
22         GOTO ON_ERROR
23 )
24
25 IF NOT EXIST %BUILD_DIR% (
26         ECHO Error: '%BUILD_DIR%', directory doesn't eixst.
27         GOTO ON_ERROR
28 )
29
30 IF "\" == "%BUILD_DIR:~-1%" (
31         SET BUILD_DIR=%BUILD_DIR:~0,-1%
32 )
33
34 IF "/" == "%BUILD_DIR:~-1%" (
35         SET BUILD_DIR=%BUILD_DIR:~0,-1%
36 )
37
38 IF NOT EXIST %BUILD_DIR%\%PLATFORM%\lib\%CONFIG% (
39         ECHO Error: No lib directory available for %PLATFORM% %CONFIG% at '%BUILD_DIR%'. Any build availalbe for platform, configuration pair?
40         GOTO ON_ERROR
41 )
42
43 IF NOT EXIST %BUILD_DIR%\%PLATFORM%\bin\%CONFIG% (
44         ECHO Error: No bin directory available for %PLATFORM% %CONFIG% at '%BUILD_DIR%'. Any build availalbe for platform, configuration pair?
45         GOTO ON_ERROR
46 )
47
48 SET PACKAGE_DIR=%BUILD_DIR%\package\%PLATFORM%\%CONFIG%
49
50 SET OPTIONS=/s /e /y
51
52 IF "-v" == "%ARGUMENTS%" (
53         SET OPTIONS=/f /s /e /y
54 )
55
56 IF "-q" == "%ARGUMENTS%" (
57         SET "OPTIONS=/s /e /q /y ^>nul"
58 )
59
60 ECHO Packaging mono build %PLATFORM% %CONFIG% into '%PACKAGE_DIR%' ...
61
62 IF EXIST %PACKAGE_DIR% rmdir %PACKAGE_DIR% /s /q
63 mkdir "%PACKAGE_DIR%"
64 mkdir "%PACKAGE_DIR%\include\mono-2.0"
65
66 SET RUN=xcopy ".\include\*.*" "%PACKAGE_DIR%\include\mono-2.0\" %OPTIONS%
67 %RUN%
68
69 SET RUN=xcopy "%BUILD_DIR%\%PLATFORM%\lib\%CONFIG%\*.lib" "%PACKAGE_DIR%\lib\" %OPTIONS%
70 %RUN%
71
72 SET RUN=xcopy "%BUILD_DIR%\%PLATFORM%\lib\%CONFIG%\*.pdb" "%PACKAGE_DIR%\lib\" %OPTIONS%
73 %RUN%
74
75 SET RUN=xcopy "%BUILD_DIR%\%PLATFORM%\bin\%CONFIG%\*.exe" "%PACKAGE_DIR%\bin\" %OPTIONS%
76 %RUN%
77
78 SET RUN=xcopy "%BUILD_DIR%\%PLATFORM%\bin\%CONFIG%\*.dll" "%PACKAGE_DIR%\bin\" %OPTIONS%
79 %RUN%
80
81 SET RUN=xcopy "%BUILD_DIR%\%PLATFORM%\bin\%CONFIG%\*.pdb" "%PACKAGE_DIR%\bin\" %OPTIONS%
82 %RUN%
83
84 SET RUN=xcopy "%BUILD_DIR%\%PLATFORM%\bin\%CONFIG%\*.lib" "%PACKAGE_DIR%\bin\" %OPTIONS%
85 %RUN%
86
87 ECHO Packaging of mono build %PLATFORM% %CONFIG% into '%PACKAGE_DIR%' DONE. 
88
89 EXIT /b 0
90
91 :ON_ERROR
92         ECHO "package.bat [win32|x64] [Debug|Release] [MONO_BUILD_DIR_PREFIX] [ARGUMENTS]"
93         EXIT /b 1
94
95 @ECHO on