added: Smartplaylists for tvshows and episodes. Needs decent testing + cleanup.
[xbmc:xbmc-antiquated.git] / Build.bat
1 @ECHO OFF
2 CLS
3 COLOR 1B
4 TITLE XBMC Build Prepare Script
5 rem ----PURPOSE----
6 rem - Create a working XBMC build with a single click
7 rem -------------------------------------------------------------
8 rem Config
9 rem If you get an error that Visual studio was not found, SET your path for VSNET main executable.
10 rem ONLY needed if you have a very old bios, SET the path for xbepatch. Not needed otherwise.
11 rem If Winrar isn't installed under standard programs, SET the path for WinRAR's (freeware) rar.exe
12 rem and finally set the options for the final rar.
13 rem -------------------------------------------------------------
14 rem Remove 'rem' from 'web / python' below to copy these to the BUILD directory.
15 rem -------------------------------------------------------------
16 rem     CONFIG START
17         IF "%VS71COMNTOOLS%"=="" (
18           set NET="%ProgramFiles%\Microsoft Visual Studio .NET 2003\Common7\IDE\devenv.com"
19         ) ELSE (
20           set NET="%VS71COMNTOOLS%\..\IDE\devenv.com"
21         )
22         IF NOT EXIST %NET% (
23           set DIETEXT=Visual Studio .NET 2003 was not found.
24           goto DIE
25         ) 
26         set OPTS=xbmc.sln /build release
27         set CLEAN=xbmc.sln /clean release
28         set XBE=release\default.xbe
29
30   set OPTS_EXE=tools\Win32\XBMC_PC.sln /build release
31         set CLEAN_EXE=tools\Win32\XBMC_PC.sln /clean release
32         set EXE= tools\Win32\Release\XBMC_PC.exe
33         
34   set XBE_PATCH=tools\xbepatch\xbepatch.exe
35         set RAR="%ProgramFiles%\Winrar\rar.exe"
36         set RAR_ROOT=rar.exe
37         set RAROPS=a -r -idp -inul -m5 XBMC.rar BUILD
38         set RAROPS_EXE=a -r -idp -inul -m5 XBMC_PC.rar BUILD_WIN32
39   rem   CONFIG END
40   rem -------------------------------------------------------------
41
42   ECHO    ²²²²²²²±±±±±±±±°°°°°°°
43   ECHO  ²ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ²²²²²²±±±±±°°°°°°     ßßß²ÜÜ
44   ECHO ÞÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ²²²²±±±°°  ßßÜ
45   ECHO ²ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ²°  Ý
46   ECHO ²ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛßÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ° ²
47   ECHO ±ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÝ°ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ Þ
48   ECHO °ÛÛÛÛÛÛ²±°  ßÛß           ßÛÛÛß    ß²ß    ßÛÛÛß   °²ÛÛÛ Þ
49   ECHO  ÛÛÛÛÛÛÛÛÛÛÝ   ÜÛÛÛÝ ²ÛÛÛÜ ÞÛݠܲÛÜ   ÜÛÛÜ ÞÛ  ÜÛÛÛÛÛÛÛ Þ
50   ECHO  ²ÛÛÛÛÛÛÛÛÛÛ  ÛÛÛÛÛÝ ÛÛÛÛÛÝ Û ÞÛÛÛÛÝ ÞÛÛÛÛÝ Ý ÞÛÛÛÛÛÛÛÛ ²
51   ECHO  ±ÛÛÛÛÛÛÛÛÛÝ ÞÛÛÛÛÛÝ ÛÛÛÛÛÝ Û ÛÛÛÛÛÝ ÛÛÛÛÛÝ   ²ÛÛÛÛÛÛÛ² Ý
52   ECHO  °²ÛÛÛÛÛÛÛß   ßÛÛÛÛÝ ßÛÛÛß ÞÝ ÛÛÛÛÛÝ ÛÛÛÛÛÝ ° ßÛÛÛÛÛÛÛÝ Ý
53   ECHO   ±ÛÛÛ²±° ÜÛÛÜ °±²ÛÛÜ     ÜÛ²ÜÛÛÛÛÛÛÜÛÛÛÛÛ² ÛÜ   °²ÛÛÛÝÞ
54   ECHO   °²ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ²
55   ECHO    ±ÛÛÛÛÛßßßßÛßßÛßßÛÛßÛÛßÛÛÛÛßßÛßßÛßßßÛßßÛßßÛßßÛÛÛÛÛÛÛ Ý
56   ECHO    °²ÛÛÛÛ ÝÞ Û ßÛ Û Û ÛÝÜÞÛÛÛ ÛÛ ßÛ Û ÛÝÞÛ ßÛ ßÜÛÛÛÛÛ± Ý
57   ECHO     ±ÛÛÛÛ ÝÞ Û ßÛ ßÜÛ Û Ü ÛÛÛ ßÛ ßÛ Û ÛÝÞÛ ßÛ Û ÛÛÛÛÛ°Þ
58   ECHO     °²ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ²
59   ECHO      ±°ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ  °±²²²²
60   ECHO      °²ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ²°°±²ß
61   ECHO       ±²ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ²Û²²ßßßß
62   ECHO        ²²ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ²Û²²ßßßß
63   ECHO         ß²ÛÛÛÛ²Û²²²ßßßßßß
64   ECHO ------------------------------------------------------------
65   ECHO XBMC prepare menu
66   ECHO ------------------------------------------------------------
67   ECHO [1] Build XBMC XBE     ( for XBOX use )
68   ECHO [2] Build XBMC_WIN32   ( for Windows use)
69   ECHO ------------------------------------------------------------
70   set /P XBMC_COMPILE_ANSWER=Please enter the number you want to build! [1/2]:
71   if /I %XBMC_COMPILE_ANSWER% EQU 1 goto XBE_COMPILE
72   if /I %XBMC_COMPILE_ANSWER% EQU 2 goto EXE_COMPILE
73
74
75 :XBE_COMPILE
76   rem ---------------------------------------------
77   rem   check for existing xbe
78   rem ---------------------------------------------
79   IF EXIST %XBE% (
80     goto XBE_EXIST
81   )
82   goto COMPILE
83
84 :EXE_COMPILE
85   rem ---------------------------------------------
86   rem   check for existing xbe
87   rem ---------------------------------------------
88   IF EXIST %EXE% (
89     goto EXE_EXIST
90   )
91   goto COMPILE_EXE
92
93 :XBE_EXIST
94   ECHO ------------------------------------------------------------
95   ECHO Found a previous Compiled XBE!
96   ECHO [1] a NEW XBE will be compiled for the BUILD 
97   ECHO [2] existing XBE will be updated (quick mode compile) for the BUILD
98   ECHO [3] existing XBE will be used for the BUILD 
99   ECHO ------------------------------------------------------------
100   set /P XBMC_COMPILE_ANSWER=Compile a new XBE? [1/2/3]:
101   if /I %XBMC_COMPILE_ANSWER% EQU 1 goto COMPILE
102   if /I %XBMC_COMPILE_ANSWER% EQU 2 goto COMPILE_NO_CLEAN
103   if /I %XBMC_COMPILE_ANSWER% EQU 3 goto MAKE_BUILD
104
105 :EXE_EXIST
106   ECHO ------------------------------------------------------------
107   ECHO Found a previous Compiled WIN32 EXE!
108   ECHO [1] a NEW EXE will be compiled for the BUILD_WIN32
109   ECHO [2] existing EXE will be updated (quick mode compile) for the BUILD_WIN32
110   ECHO [3] existing EXE will be used for the BUILD_WIN32
111   ECHO ------------------------------------------------------------
112   set /P XBMC_COMPILE_ANSWER=Compile a new EXE? [1/2/3]:
113   if /I %XBMC_COMPILE_ANSWER% EQU 1 goto COMPILE_EXE
114   if /I %XBMC_COMPILE_ANSWER% EQU 2 goto COMPILE_NO_CLEAN_EXE
115   if /I %XBMC_COMPILE_ANSWER% EQU 3 goto MAKE_BUILD_EXE
116   
117 :COMPILE
118   ECHO Wait while preparing the build.
119   ECHO ------------------------------------------------------------
120   ECHO Cleaning Solution...
121   %NET% %CLEAN%
122   del release\xbmc.map
123   ECHO Compiling Solution...
124   %NET% %OPTS%
125   IF NOT EXIST %XBE% (
126         set DIETEXT=Default.xbe failed to build!  See .\Release\BuildLog.htm for details.
127         goto DIE
128   )
129   ECHO Done!
130   ECHO ------------------------------------------------------------
131   GOTO MAKE_BUILD
132
133 :COMPILE_EXE
134   ECHO Wait while preparing the build.
135   ECHO ------------------------------------------------------------
136   ECHO Cleaning Solution...
137   %NET% %CLEAN_EXE%
138   del  tools\Win32\Release\xbmc.map
139   ECHO Compiling Solution...
140   %NET% %OPTS_EXE%
141   IF NOT EXIST %EXE% (
142         set DIETEXT=XBMC_PC.EXE failed to build!  See .\tools\Win32\Release\BuildLog.htm for details.
143         goto DIE
144   )
145   ECHO Done!
146   ECHO ------------------------------------------------------------
147   GOTO MAKE_BUILD_EXE
148   
149 :COMPILE_NO_CLEAN
150   ECHO Wait while preparing the build.
151   ECHO ------------------------------------------------------------
152   ECHO Compiling Solution...
153   %NET% %OPTS%
154   IF NOT EXIST %XBE% (
155         set DIETEXT=Default.xbe failed to build!  See .\Release\BuildLog.htm for details.
156         goto DIE
157   )
158   ECHO Done!
159   ECHO ------------------------------------------------------------
160   GOTO MAKE_BUILD
161   
162 :COMPILE_NO_CLEAN_EXE
163   ECHO Wait while preparing the build.
164   ECHO ------------------------------------------------------------
165   ECHO Compiling Solution...
166   %NET% %OPTS_EXE%
167   IF NOT EXIST %EXE% (
168         set DIETEXT=XBMC_PC.EXE failed to build!  See .\tools\Win32\Release\BuildLog.htm for details.
169         goto DIE
170   )
171   ECHO Done!
172   ECHO ------------------------------------------------------------
173   GOTO :MAKE_BUILD_EXE
174
175 :MAKE_BUILD
176   ECHO Copying files...
177   ECHO - XBE Patching %XBE% 
178   %XBE_PATCH% %XBE%
179   ECHO - Patching Done!
180   
181   rmdir BUILD /S /Q
182   md BUILD
183   
184   Echo .svn>exclude.txt
185   Echo Thumbs.db>>exclude.txt
186   Echo Desktop.ini>>exclude.txt
187   Echo dsstdfx.bin>>exclude.txt
188   Echo exclude.txt>>exclude.txt
189
190   xcopy %XBE% BUILD
191   xcopy UserData BUILD\UserData /E /Q /I /Y /EXCLUDE:exclude.txt
192   xcopy *.txt BUILD /EXCLUDE:exclude.txt
193   rem xcopy *.xml BUILD\
194
195   cd "skin\Project Mayhem III"
196   CALL build.bat
197   cd ..\..
198   xcopy "skin\Project Mayhem III\BUILD\Project Mayhem III" "BUILD\skin\Project Mayhem III" /E /Q /I /Y /EXCLUDE:exclude.txt
199
200   xcopy credits BUILD\credits /Q /I /Y /EXCLUDE:exclude.txt
201   xcopy language BUILD\language /E /Q /I /Y /EXCLUDE:exclude.txt
202   xcopy screensavers BUILD\screensavers /E /Q /I /Y /EXCLUDE:exclude.txt
203   xcopy visualisations BUILD\visualisations /E /Q /I /Y /EXCLUDE:exclude.txt
204   xcopy system BUILD\system /E /Q /I /Y /EXCLUDE:exclude.txt
205   rem %rar% x web\Project_Mayhem_webserver*.rar build\web\
206   rem %rar% x web\Project_Mayem_III_webserver*.rar build\web\
207   xcopy media BUILD\media /E /Q /I /Y /EXCLUDE:exclude.txt
208   xcopy sounds BUILD\sounds /E /Q /I /Y /EXCLUDE:exclude.txt
209
210   del exclude.txt
211   ECHO ------------------------------------------------------------
212   ECHO Build Succeeded!
213   GOTO RAR_XBE
214
215 :MAKE_BUILD_EXE
216   ECHO Copying files...
217   rmdir BUILD_WIN32 /S /Q
218   md BUILD_WIN32\Xbmc_pc
219
220   Echo .svn>exclude.txt
221   Echo Thumbs.db>>exclude.txt
222   Echo Desktop.ini>>exclude.txt
223   Echo dsstdfx.bin>>exclude.txt
224   Echo exclude.txt>>exclude.txt
225
226   xcopy %EXE% BUILD_WIN32\Xbmc_pc
227   xcopy UserData BUILD_WIN32\Xbmc_pc\UserData /E /Q /I /Y /EXCLUDE:exclude.txt
228   xcopy *.txt BUILD_WIN32 /EXCLUDE:exclude.txt
229   rem xcopy *.xml BUILD_WIN32\
230   
231   rem xcopy tools\Win32\run_me_first.bat BUILD_WIN32 /EXCLUDE:exclude.txt
232   Echo subst q: Xbmc_pc>run_me.bat
233   Echo subst p: q:\userdata>>run_me.bat
234   Echo subst t: q:\userdata>>run_me.bat
235   Echo if not exist q:\Temp md Temp>>run_me.bat
236   Echo subst z: Temp>>run_me.bat
237   Echo Xbmc_pc\XBMC_PC.exe>>run_me.bat
238   Echo subst z: /D>>run_me.bat
239   Echo subst t: /D>>run_me.bat
240   Echo subst p: /D>>run_me.bat
241   Echo subst q: /D>>run_me.bat
242   
243   xcopy run_me.bat BUILD_WIN32
244   del run_me.bat
245   
246   cd "skin\Project Mayhem III"
247   CALL build.bat
248   cd ..\..
249   xcopy "skin\Project Mayhem III\BUILD\Project Mayhem III" "BUILD_WIN32\Xbmc_pc\skin\Project Mayhem III" /E /Q /I /Y /EXCLUDE:exclude.txt
250
251   xcopy credits BUILD_WIN32\Xbmc_pc\credits /Q /I /Y /EXCLUDE:exclude.txt
252   xcopy language BUILD_WIN32\Xbmc_pc\language /E /Q /I /Y /EXCLUDE:exclude.txt
253   xcopy screensavers BUILD_WIN32\Xbmc_pc\screensavers /E /Q /I /Y /EXCLUDE:exclude.txt
254   xcopy visualisations BUILD_WIN32\Xbmc_pc\visualisations /E /Q /I /Y /EXCLUDE:exclude.txt
255   xcopy system BUILD_WIN32\Xbmc_pc\system /E /Q /I /Y /EXCLUDE:exclude.txt
256   xcopy media BUILD_WIN32\Xbmc_pc\media /E /Q /I /Y /EXCLUDE:exclude.txt
257   xcopy sounds BUILD_WIN32\Xbmc_pc\sounds /E /Q /I /Y /EXCLUDE:exclude.txt
258
259   del exclude.txt
260   ECHO ------------------------------------------------------------
261   ECHO Build Succeeded!
262   GOTO RAR_EXE
263
264 :RAR_XBE
265   ECHO ------------------------------------------------------------
266   ECHO Compressing build to XBMC.rar file...
267   ECHO ------------------------------------------------------------
268   IF EXIST %RAR% ( %RAR% %RAROPS% 
269     ) ELSE ( 
270     IF EXIST %RAR_ROOT% ( %RAR_ROOT% %RAROPS% 
271       ) ELSE ( 
272       ECHO WinRAR not installed!  Skipping .rar compression...
273       )
274     )
275   ECHO ------------------------------------------------------------
276   GOTO VIEWLOG_XBE
277
278 :RAR_EXE
279   ECHO ------------------------------------------------------------
280   ECHO Compressing build to XBMC_WIN32.rar file...
281   ECHO ------------------------------------------------------------
282   IF EXIST %RAR% ( %RAR% %RAROPS_EXE%
283     ) ELSE ( 
284     IF EXIST %RAR_ROOT% ( %RAR_ROOT% %RAROPS_EXE% 
285       ) ELSE (
286       ECHO WinRAR not installed!  Skipping .rar compression...
287       )
288     )
289   ECHO ------------------------------------------------------------
290   GOTO VIEWLOG_EXE
291   
292 :DIE
293   ECHO ------------------------------------------------------------
294   ECHO !-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-
295   ECHO    ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR
296   ECHO !-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-
297   set DIETEXT=ERROR: %DIETEXT%
298   echo %DIETEXT%
299   ECHO ------------------------------------------------------------
300
301 :VIEWLOG_XBE
302   set /P XBMC_BUILD_ANSWER=View the build log in your HTML browser? [y/n]
303   if /I %XBMC_BUILD_ANSWER% NEQ y goto END
304   start /D"%~dp0Release" BuildLog.htm"
305   goto END
306
307 :VIEWLOG_EXE
308   set /P XBMC_BUILD_ANSWER=View the build log in your HTML browser? [y/n]
309   if /I %XBMC_BUILD_ANSWER% NEQ y goto END
310   start /D"%~dp0tools\Win32\Release" BuildLog.htm"
311   goto END
312
313 :END
314   set XBMC_BUILD_ANSWER=
315   ECHO Press any key to exit...
316   pause > NUL