Compilación

De Xitai-E Wiki
Saltar a: navegación, buscar

Esta sección requiere un nivel de conocimientos relativamente alto en desarrollo de software. Las principales tecnologías usadas son python, make, c++, qt y mercurial.


Requisitos previos

Se necesitan las siguientes librerías opensource:

  • qt 5.x [1]
  • libpng [2]
  • zlib [3]
  • libpng [4]
  • zlib [5]
  • SDL 2 [6]
  • SDL_mixer 2 y sus dependencias (libvorbis, libvorbisfile, libogg) [7]
  • sqlite3 y mysqlclient, para el servidor (Game Center) de referencia.

En Windows utilizaremos el compilador GCC que viene con QT 5.x, para ello debemos instalar Qt 5.x, versión open source, para Windows y MinGW, desde [https://www.qt.io/] y de paso, ya tenemos instalada las QT. Probablemente será necesario configurar la variable de entorno PATH para que qmake y compilador puedan ser usados mediante la línea de comandos.

Instalación

Para Windows las hemos recopilado en el archivo descargable: http://xitai.es/store/Libs/lgpl-libs.zip.

En OSX y Linux deberán ser instaladas por el usuario. En OSX se recomienda el uso de Homebrew.

En linux puede variar con la distribución. Por ejemplo, en Ubuntu se pueden instalar con el comando:

$ sudo apt install libsqlite3-dev libmysqlclient-dev libpng16-dev libssl-dev qt5-default libsdl2-dev libsdl2-mixer-dev libqt5svg5-dev

Descarga del código fuente

El repositorio oficial del código fuente utiliza el sistema de control de versiones mercurial. Aunque puede obtenerse una versión comprimida de los fuentes sin necesidad de dicha herramienta es recomendable usarla para sucesivas actualizaciones. Existe un interface gráfico amigable: Tortoise HG.

Cuando se requiera, el nombre de usuario es anonimo y la contraseña geronimo.

Recomendamos crear una directorio llamado Xitai para instalar los siguientes componentes (y las librerías open source, en caso de Windows).

mkmk

En el proceso de compilación necesitamos mkmk para la generación de makefiles. Está escrito en el lenguaje Python. Hemos probado con éxito las versiones 2.7 y 3.2 - 3.6 de python. Alguna de ellas debemos tener instalada en el sistema.

Debemos añadir a la variable de entorno PYTHONPATH (crearla si no existe) el path de nuestras utilidades en python, que será el path absoluto de mkmk/src/

Xitai-Support

Librería de utilidades de propósito general.

Xitai-E0

Editor y player.

Box2D_v2.3

Descargamos box2d (librería de física 2D) desde http://xitai.es/store/Libs/Box2D_v2.3.1.zip

Y copiaremos el directorio Xitai-E0/other_libs/Box2D_v2.3.1/Build/MkMak en Box2D_v2.3.1/Box2D/Build/. Este será el directorio en el que se compilará este componente.

Proyecto de juego para probar

Descarguemos también algún proyecto de juego para probar el resultado. Por ejemplo Galactic Plague:

Compilación

El directorio resultante (Xitai) será como:

  • Box2D_v2.3.1
  • mkmk
  • Xitai-E0
  • Xitai-Support
  • game.galactic_plague
  • lgpl-libs (sólo en Windows)

Para preparar la compilación usaremos mk.py que es un script en python que genera un makefile (o un qmakefile, según el caso). Es una forma cómoda y poco prolija de construir makefiles para linux, osx y windows declarando un mínimo de opciones. El módulo python que lo permite reside en mkmk/src.

Forma manual

Compilación de box2d

Esto sólo se hará una vez.

Nos situamos en el directorio Box2D_v2.3.1/Box2D/Build/MkMak/ y ejecutamos el script de python mk.py. Esto generará los makefiles necesarios.

Después, ejecutar make.

Si todo fue bien, tendremos compilado el engine de física 2D para nuestra plataforma.

Compilación de Xitai-E0

Nos situamos en el directorio Xitai-E0/build/makes/ y ejecutamos el script de python mk.py. Esto generará un makefile inicial.

Después, ejecutar make.

En esta operación se compila el SDK, el editor y reproductor de referencia.

Utilizando Eclipse

Una herramienta de edición será útil, pero no es necesaria. En caso de usar Eclipse se pueden crear tres proyectos de Eclipse (box2d, xitai-support y xitai-e0) de tipo C++ Project:Makefile Project:Empty Project.

Nos conviene instalar la extensión Pydev de Eclipse. Posteriormente les asignaremos a los dos proyectos creados el tipo Pydev Project para poder ejecutar cómodamente los scripts de python desde el menú.

En el caso de Windows tenemos que cerciorarnos de que el PATH de ejecutables incluye los binarios del compilador mingw32 y el programa make que se usa es mingw32-make.

Compilación de box2d

Esto sólo se hará una vez.

En el explorador del proyecto, situando el cursor en el archivo Box2D_v2.2.1/Build/MkMak/mk.py, abrimos el menú contextual y seleccionamos Run As:Python Run. Esto debería generar los makefiles para box2d.

En el explorador del proyecto, situando el cursor en el directorio Box2D_v2.2.1/Build/MkMak, abrimos el menú contextual y seleccionamos Make Targets:Create. Editamos el Target name como all.

En la ventana Make Target deberá aparecer una entrada para ese target de makefile. Hacer un doble click en él para compilar.

Otros targets que se pueden crear son: clean, debug.32-all, release.32-all, debug.64-all y release.64-all.

Compilación de Xitai-E0

Es similar a la compilación de box2d. El script de creación del makefile inicial es Xitai-E0/build/makes/mk.py. En este caso, al ejecutar el make se crean otros varios makefiles, ejecutándose los mk.py correspondientes a cada subdirectorio. También creará los makefiles para Xitai-Support.

Para los componentes QT, el script mk.py crea un script qmake que, a su vez, crea los makefiles.

El makefile raíz, que compilará todos los submakefiles es el de Xitai-E0/build/makes/ aunque se podrán compilar componentes sueltos desde el submakefile correspondiente.