Merge pull request #5117 from MartijnKaijser/14.0a2
[vuplus_xbmc] / tools / buildsteps / win32 / make-addons.bat
1 @ECHO OFF
2
3 SETLOCAL
4
5 SET EXITCODE=0
6
7 SET getdepends=true
8 SET install=false
9 SET noclean=false
10 SET addon=
11 FOR %%b in (%1, %2, %3, %4) DO (
12   IF %%b == nodepends (
13     SET getdepends=false
14   ) ELSE ( IF %%b == install (
15     SET install=true
16   ) ELSE ( IF %%b == noclean (
17     SET noclean=true
18   ) ELSE ( IF %%b == clean (
19     SET noclean=false
20   ) ELSE (
21     SET addon=%%b
22   ))))
23 )
24
25 rem set Visual C++ build environment
26 call "%VS120COMNTOOLS%..\..\VC\bin\vcvars32.bat"
27
28 SET WORKDIR=%WORKSPACE%
29
30 IF "%WORKDIR%" == "" (
31   SET WORKDIR=%CD%\..\..\..
32 )
33
34 rem setup some paths that we need later
35 SET CUR_PATH=%CD%
36 SET BASE_PATH=%WORKDIR%\project\cmake
37 SET ADDONS_PATH=%BASE_PATH%\addons
38 SET ADDON_DEPENDS_PATH=%ADDONS_PATH%\output
39 SET ADDONS_BUILD_PATH=%ADDONS_PATH%\build
40
41 SET ERRORFILE=%BASE_PATH%\make-addons.error
42
43 SET XBMC_INCLUDE_PATH=%ADDON_DEPENDS_PATH%\include\xbmc
44 SET XBMC_LIB_PATH=%ADDON_DEPENDS_PATH%\lib\xbmc
45
46 rem determine whether make-addon-depends.bat should be called with noclean or not
47 SET addon_depends_mode=clean
48 IF %noclean% == true (
49   SET addon_depends_mode=noclean
50 )
51
52 IF %getdepends% == true (
53   ECHO --------------------------------------------------
54   ECHO Building addon dependencies
55   ECHO --------------------------------------------------
56
57   CALL make-addon-depends.bat %addon_depends_mode%
58   IF ERRORLEVEL 1 (
59     ECHO make-addon-depends error level: %ERRORLEVEL% > %ERRORFILE%
60     GOTO ERROR
61   )
62
63   ECHO.
64 )
65
66 IF %noclean% == false (
67   rem remove the build directory if it exists
68   IF EXIST "%ADDONS_BUILD_PATH%" (
69     RMDIR "%ADDONS_BUILD_PATH%" /S /Q > NUL
70   )
71 )
72
73 rem make sure the xbmc include and library paths exist
74 IF NOT EXIST "%XBMC_INCLUDE_PATH%" (
75   MKDIR "%XBMC_INCLUDE_PATH%"
76 )
77 IF NOT EXIST "%XBMC_LIB_PATH%" (
78   MKDIR "%XBMC_LIB_PATH%"
79 )
80
81 rem create the build directory
82 IF NOT EXIST "%ADDONS_BUILD_PATH%" MKDIR "%ADDONS_BUILD_PATH%"
83
84 rem go into the build directory
85 CD "%ADDONS_BUILD_PATH%"
86
87 rem determine the proper install path for the built addons
88 IF %install% == true (
89   SET ADDONS_INSTALL_PATH=%WORKDIR%\addons
90 ) ELSE (
91   SET ADDONS_INSTALL_PATH=%WORKDIR%\project\Win32BuildSetup\BUILD_WIN32\Xbmc\xbmc-addons
92 )
93
94 ECHO --------------------------------------------------
95 ECHO Building addons
96 ECHO --------------------------------------------------
97
98 rem execute cmake to generate makefiles processable by nmake
99 cmake "%ADDONS_PATH%" -G "NMake Makefiles" ^
100       -DCMAKE_BUILD_TYPE=Release ^
101       -DCMAKE_USER_MAKE_RULES_OVERRIDE="%BASE_PATH%/xbmc-c-flag-overrides.cmake" ^
102       -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX="%BASE_PATH%/xbmc-cxx-flag-overrides.cmake" ^
103       -DCMAKE_INSTALL_PREFIX=%ADDONS_INSTALL_PATH% ^
104       -DXBMCROOT=%WORKDIR% ^
105       -DDEPENDS_PATH=%ADDON_DEPENDS_PATH% ^
106       -DPACKAGE_ZIP=1 ^
107       -DARCH_DEFINES="-DTARGET_WINDOWS -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS -D_USE_32BIT_TIME_T -D_WINSOCKAPI_"
108 IF ERRORLEVEL 1 (
109   ECHO cmake error level: %ERRORLEVEL% > %ERRORFILE%
110   GOTO ERROR
111 )
112
113 rem execute nmake to build the addons
114 nmake %addon%
115 IF ERRORLEVEL 1 (
116   ECHO nmake error level: %ERRORLEVEL% > %ERRORFILE%
117   GOTO ERROR
118 )
119
120 rem everything was fine
121 GOTO END
122
123 :ERROR
124 rem something went wrong
125 ECHO Failed to build addons
126 ECHO See %ERRORFILE% for more details
127 SET EXITCODE=1
128
129 :END
130 rem go back to the original directory
131 cd %CUR_PATH%
132
133 rem exit the script with the defined exitcode
134 EXIT /B %EXITCODE%