Multiplataforma

Encaminados a la primera Release

Muy buenas,

Os escribo para informaros que pronto vamos a realizar la primera release a causa de el gran movimiento que está existiendo en el planet. Hemos decidido que igual para el martes que viene vamos a publicar los siguientes elementos:

Sistema de Empaquetado

Hemos analizado las distintas alternativas que existen para empaquetado-compresión de objetos.

En principio hemos probado las siguientes librerias:

* Zlib (www.zlib.net)
* libtar (http://www.feep.net/libtar/)
* unzip (http://www.info-zip.org/)
* zlib-1.2.3/contrib/untgz/ (www.zlib.net)
* 7z (http://downloads.sourceforge.net/sevenzip/lzma457.tar.bz2)

Carga de primer modulo File Realizada!

Hemos conseguido enlazar nuestro primer modulo, es de tipo File, y nos ha devuelto su primer "funcion no implementada"!. Esto nos ha llevado varias horas de modificaciones en configures.ac y makefiles.am, no esperabamos tanta complicación despues de tanto tutorial y pelea.

Ahora tras conseguir la comunicación con los modulos, pasamos a la fase 6, implementación de módulos graphics. Hasta ahora los modulos los hemos dejado hasta construir el controlador, que es la parte esencial de la arquitectura. Sabiendo que esto funciona y con nuestro creador de modulos, podemos crear modulos rapidamente peleandonos ya con los pequeños problemas de las librerias de alto nivel que vamos a usar.

En principio para esta fase vamos a utilizar intensivamente Irrlicht, irrlicht para la lectura del xml, irrlicht para la conversión a lenguaje intermedio y un modulo lenguaje inermedio-objeto irrlicht listo para ser usado en la aplicación de usuario.

Proyecto actualizado. Libreria Funciona Multiplataforma.

Acabo de actualizar el SVN con los ultimos cambios. He conseguido hacer que el programa se ejecute tanto en linux como en windows de manera automatica ejecutando compile.sh.

Hemos tenido bastantes problemas, por lo que voy a dejar aqui una nota para todos aquellos que quieran desarrollar con libtool. Por lo visto bajo windows no se puede añadir en la sección xxx_la_LIBADD nada estaticamente, ya que se marea, el truco, y esto ya lo he dicho en otro momento, está en añadir los fuentes directamente.

Actualización del SVN. Creación de .h y más.

Se ha actualizado algunos documentos del svn y se han añadido unos cuantos mas.

Se ha actualizado la licencia poniendola de una vez a LGPL, se ha añadido una copia de la LGPL 3.0 en el fichero COPYING.
Se ha añadido la licencia al principio de todos los ficheros fuente.
Se han añadido los ficheros de los 4 tipos de interfaces posibles, IFile, IParser, IModule y IOVC
se han creado los ficheros de las clases que heredan de estos interfaces.

Lo siguiente que voy a hacer es actualizar el creador de modulos para que creen el codigo necesario para los diferentes interfaces.

Terminado el creador de modulos

Se ha terminado la aplicación que crea una estructura multiplataforma para los distintos tipos de modulos que pueden añadirse a nuestra aplicación, de manera que se pueda desarrollar modulos contestando una serie de preguntas y luego rellenando las peculiaridades del propio modulo. Permitiendo una productividad mayor en el desarrollo de modulos y evitando que el desarrollador de modulos se tenga que pegar con libtool, etc.

Actualmente esta aplicación está dentro de libovc, pues está intrinsecamente ligado a éste. Es posible que esto este sujeto a cambios en los proximos dias

Etapa 4.Portabilizando la librería para windows.(Fin)

Vamos a explicar como compilar y nuestro controlador y su modulo en un sistema operativo Windows de tal manera que habremos completado esta serie de tutoriales.
Esperamos que haya sido de su agrado y que por favor no dude en ponerse en contacto con nosotros si tiene alguna duda.
Puede descargarse los ficheros generados por este tutorial en Forja Tutorial4.tar.gz

Libtool Multiplataforma y Librerias dinamicas. El tutorial Perdido.

Dado que nuestro proyecto esta intimamente relacionado con el desarrollo multiplataforma y que consideramos que no existe suficiente información en castellano sobre libtool, automake y autoconf, vamos a realizar una serie de tutoriales que finalmente terminarán recopilados en el wiki en forma de macrotutorial de libtool, automake y autoconf.

Hasta pronto.

Actualización: Se han terminado la serie de tutoriales, os dejamos los enlaces a continuación.

Enlaces:

Etapa 3. Carga de librerías dinámicas en tiempo de ejecución. (Solo linux)

Vamos a explicar como se realizan cargas de librerías dinámicas con libtool y la librería ltdl, en este tutorial nos vamos a saltar el paso de cargar con dlopen y dlclose los módulos, pues consideramos que es demasiado mono-sistema y que no aporta demasiado al tutorial ya que con la librería ltdl abstraemos todas esas funciones. Si está interesado en dlopen sin la librería ltdl puede encontrar información en [3] c++ dlopen mini howto.

Se puede descargar el resultado de este tutorial en forja tutorial3.tar.gz(actualizado)

Etapa 2. Inclusión de libtool y carga de librería estática.

En esta etapa vamos a modificar nuestro proyecto para que con libtool haga una carga de una librería de manera estática, finalmente esto nos servirá de ejemplo de como se utiliza libtool y además nos aportará un entorno de desarrollo con libtool preparado para el paso a la carga de librerías dinámicas.

Se puede descargar el ejemplo de la siguiente dirección: forja tutorial2.tar.gz

Distribuir contenido