Este tutorial está dirigido a aquellos que quieran modificar o reformar los fuentes del XBMC. También para aquellos que no puedan esperar a que alguien compile la ultima versión del XBMC o simplemente no la encuentre.
Advertir que tanto las librerías y fuentes del MS Xbox SDK, como los ficheros ejecutables resultantes de la compilación con estas librerias y fuentes son ilegales ya que solo están autorizados a usarlas los desarrolladores autorizados por MS. Así que ojito con su distribución.
Necesitaremos los siguientes programas:
- Visual Studio .NET 7.1 (2003), consta de 7 CD’s.
- MS Xbox SDK 5778 o superior.
-
XBEPatch.
- Un cliente de CVS como
WinCVS.
-
WinRAR v3.30.
-
Mini DirectX 9 SDK.
* Instalamos solamente Visual C++ del paquete Visual Studio .NET 2003, únicamente necesitaremos los CD’s 1, 2 y Prerrequisitos.
* Instalamos completamente el paquete MS Xbox SDK 5778 o superior.
* Creamos una carpeta llamada XBMC. Ej.(C:\XBMC).
* Instalamos WinCVS y configuramos el módulo “Checkout” -> “General” con los siguientes parámetros:
Authentication: pserver
Path: /cvsroot/xbmc
Host Address: cvs.sourceforge.net
Username: anonymous
CVSROOT: anonymous@cvs.sourceforge.net:/cvsroot/xbmc
En “Checkout Settings”:
Module name and path on the server: XBMC
Local folder to checkout to: C:\XBMC\
Aceptamos y comenzará a bajarse los fuentes de CVS. (unos 136 MB.).
Esto solo lo hace la primera vez, en sucesivas ocasiones solo se bajará las actualizaciones o variaciones en los fuentes. Una vez terminado el proceso cerraremos el WinCVS.
* Lo primero que haremos será compilar una utilidad llamada XBMCTex.exe que sirve para compactar las texturas de los skin. Para ello necesitaremos las librerías del Mini DirectX 9 SDK, descomprimimos el fichero dxsdk9.zip, las carpetas Include y Lib las metemos en una carpeta que llamaremos DX90SDK y lo ponemos en C:\XBMC\. Nos vamos a la carpeta C:\XBMC\XBMC\tools\XBMCTex y editamos el fichero stdafx.h, donde pone:
// Thses must be the DX SDK (8.1+) versions, not the XDK versions
#include "/DX90SDK/Include/D3D8.h"
#include "/DX90SDK/Include/D3DX8.h"
ponemos:
// Thses must be the DX SDK (8.1+) versions, not the XDK versions
#include " C:\XBMC\DX90SDK\Include\D3D8.h"
#include " C:\XBMC\DX90SDK\Include\D3DX8.h"
* Una vez editado damos doble clip en el fichero XBMCTex.sln, esto lanzará el Visual Studio .NET 2003 con el proyecto XBMCTex. Compilamos el proyecto en “Generar” -> “Generar solución”. Una vez terminada la compilación podemos cerrar el Visual Studio .NET 2003 y tendremos un fichero llamado XBMCTex.exe en C:\XBMC\XBMC\tools\XBMCTex\. Este fichero lo pondremos en una carpeta llamada XBMCTex en C:\XBMC\.
* Ahora crearemos un fichero de comandos, (sólo para XP), que automatizará todo el proceso y al que llamaremos Compilar.bat con las siguientes líneas:
@ECHO OFF
CLS
TITLE Fichero de comandos para la preparacion del proyecto XBMC
ECHO Preparando la compilacion...
:: Donde está localizado este fichero ::
SET HOME=C:\XBMC
:: Un directorio que contiene cualquier skin añadido (puede estar vacio) ::
SET SKINS=%HOME%\Skins
:: Un directorio que contiene cualquier codec añadido (puede estar vacio) ::
SET CODECS=%HOME%\Codecs
:: Un directorio que contiene cualquier anexo añadido (puede estar vacio) ::
SET ANEX=%HOME%\Anexos
:: Ruta a la línea de comandos del WinCvs, bajado de http://www.wincvs.org/ ::
SET CVS=C:\Archivos de programa\GNU\WinCvs 1.3\CVSNT\cvs.exe
:: Ruta a Visual Studio .NET 7.1 2003 (con el MS Xbox SDK 5778 o superior instalado) ::
SET NET=C:\Archivos de programa\Microsoft Visual Studio .NET 2003\Common7\IDE\devenv.exe
:: Opciones de la compilación ::
SET OPTS=%HOME%\XBMC\xbmc.sln
:: Ruta a la línea de comandos del rar.exe incluida en WinRAR v3.30, bajado de http://www.rarlab.com/download.htm ::
SET RAR=C:\Archivos de programa\WinRAR\rar.exe
:: Opciones de compresión ::
SET COMPRESSOPS=a -ep1 -r -m5
:: Opciones de descompresión ::
SET EXTRACTOPS=x -r -o-
:: Ruta del XBMCTex.exe, se obtiene compilando XBMC\tools\XBMCTex\XBMCTex.sln. Se necesitan ::
:: las librerias del Mini DirectX 9 SDK, bajado de http://idam.ladei.com.ar/descargas.php ::
SET TEX=C:\XBMC\XBMCTex\XBMCTex.exe
:: Ruta del XBEPatch, bajado de http://www.xbox-scene.com/tools/tools.php?page=xbexbx ::
SET XBE=C:\XBMC\Xbepatch\xbepatch.exe
:: Coge la fecha del ordenador::
SET DD=%date:~0,2%
SET MM=%date:~3,2%
SET YYYY=%date:~6,4%
CD /D "%HOME%"
IF NOT EXIST exclude.txt ECHO CVS>exclude.txt
ECHO Recuperando fuentes desde CVS...
"%CVS%" -z3 -d :pserver:anonymous:@cvs.sourceforge.net:/cvsroot/xbmc checkout XBMC
ECHO Limpiando solucion...
"%NET%" "%OPTS%" /clean release
DEL "%HOME%\XBMC\Release\xbmc.map"
ECHO Compilando solucion...
"%NET%" "%OPTS%" /build release
IF NOT EXIST "%HOME%\xbmc-%YYYY%-%MM%-%DD%" GOTO S1
ECHO Borrando el directorio xbmc-%YYYY%-%MM%-%DD%...
RMDIR "%HOME%\xbmc-%YYYY%-%MM%-%DD%" /S /Q
:S1
IF NOT EXIST "%HOME%\xbmc-%YYYY%-%MM%-%DD%.rar" GOTO S2
ECHO Borrando el fichero xbmc-%YYYY%-%MM%-%DD%.rar...
DEL "%HOME%\xbmc-%YYYY%-%MM%-%DD%.rar" /S /Q
:S2
ECHO Parcheando el XBE...
"%XBE%" "%HOME%\XBMC\Release\default.xbe"
ECHO Creando el directorio Temporal...
MD "%HOME%\Temporal"
ECHO Copiando ficheros...
COPY "%HOME%\XBMC\Release\default.xbe" "%HOME%\Temporal"
COPY "%HOME%\XBMC\*.xml" "%HOME%\Temporal"
COPY "%HOME%\XBMC\bugs.txt" "%HOME%\Temporal"
XCOPY "%HOME%\XBMC\mplayer" "%HOME%\Temporal\mplayer" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\skin\MediaCenter\fonts" "%HOME%\Temporal\skin\MediaCenter\fonts" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\skin\MediaCenter\*.xml" "%HOME%\Temporal\skin\MediaCenter" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\skin\MediaCenter\media\pal" "%HOME%\Temporal\skin\MediaCenter\media\pal" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\scripts\*.py" "%HOME%\Temporal\scripts" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\credits" "%HOME%\Temporal\credits" /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\language" "%HOME%\Temporal\language" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\xbmc\keyboard\media" "%HOME%\Temporal\media" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\visualisations" "%HOME%\Temporal\visualisations" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%HOME%\XBMC\weather" "%HOME%\Temporal\weather" /E /Q /I /Y /EXCLUDE:exclude.txt
XCOPY "%CODECS%" "%HOME%\Temporal\mplayer\codecs" /E /Q /I /Y
XCOPY "%SKINS%" "%HOME%\Temporal\skin" /E /Q /I /Y
XCOPY "%ANEX%" "%HOME%\Temporal" /E /Q /I /Y
ECHO Comprimiendo texturas...
"%TEX%" -input "%HOME%\XBMC\skin\MediaCenter\media" -output "%HOME%\Temporal\skin\MediaCenter\media"
ECHO Extrayendo ficheros...
"%RAR%" %EXTRACTOPS% "%HOME%\XBMC\web\web.rar" "%HOME%\Temporal\web"
"%RAR%" %EXTRACTOPS% "%HOME%\XBMC\web\xbmc.rar" "%HOME%\Temporal\web"
"%RAR%" %EXTRACTOPS% "%HOME%\XBMC\python\python.rar" "%HOME%\Temporal\python"
"%RAR%" %EXTRACTOPS% "%HOME%\XBMC\scripts\scripts.rar" "%HOME%\Temporal\scripts"
ECHO Renombrando el directorio Temporal a xbmc-(fecha actual)...
REN "Temporal" "xbmc-%YYYY%-%MM%-%DD%"
ECHO Comprimiendo...
"%RAR%" %COMPRESSOPS% "%HOME%\xbmc-%YYYY%-%MM%-%DD%.rar" "%HOME%\xbmc-%YYYY%-%MM%-%DD%"
ECHO Finalizado!
ECHO Pulse una tecla para cerrar la ventana.
PAUSE> NUL
Para que este fichero de comandos funcione correctamente deberemos tener la siguiente estructura.
C:\Archivos de programa\Microsoft Visual Studio .NET 2003 = En esta carpeta debe estar el Visual Studio .NET 2003.
C:\Archivos de programa\GNU\WinCvs 1.3 = En esta carpeta debe estar el WinCvs.
C:\Archivos de programa\WinRAR = En esta carpeta debe estar el Winrar.
C:\XBMC\XBMC = En esta carpeta están todas las librerías y fuentes bajados de CVS.
C:\XBMC\Codecs = En esta carpeta pondremos los codecs que queremos añadir.
C:\XBMC\DX90SDK = En esta carpeta estarán las librerías y los fuentes del Mini DirectX 9 SDK. En principio solo los necesitamos para compilar el XBMCTex.exe pero nunca se sabe cuando los necesitaremos de nuevo…
C:\XBMC\Skins = En esta carpeta pondremos los skins distintos al MediaCenter que queremos añadir.
C:\XBMC\XBMCTex = En esta carpeta estará el XBMCTex.exe
C:\XBMC\Anexos = En esta carpeta pondremos todo los ficheros que queramos añadir o pisar situados correctamente en su ruta de carpetas. Ej. (fichero “strings.xml” en castellano actualizado en la carpeta “Spanish” dentro de la carpeta “language”)
C:\XBMC\Xbepatch = En esta carpeta estará el xbepatch.exe que se encarga de parchear el default.xbe generado para convertirlo de Debug a Retail.
C:\XBMC\Compilar.bat = Fichero de comandos que automatiza todo el proceso.
Saludos.