[Jderobot-dev] Algunos comentarios sobre cmake

Roberto Calvo rocapal en libresoft.es
Jue Mayo 24 11:30:28 CEST 2012


El mié, 23-05-2012 a las 16:50 +0200, Mikel Gonzalez Baile escribió:
> Hola Roberto,
> 
> 
> ya estoy puesto con los problemas que comentas acerca de CMake:

Genial! :-)
La verdad es que está haciendo muy buen trabajo, la compilación me ha
funcionado bastante bien y no he tenido problemas graves. 

> 
> - El problema de introrob ya está arreglado.
> - Con el tema de Gearbox tienes razón, miro si se encuentra en alguna
> de las dos rutas pero luego sólo añado una.
> - El tema de mirar paquetes que pueden hacer fallar componentes
> concretos se arreglará en la siguiente "versión" que estoy preparando
> para compilar con CMake. 

Si lo sé, por eso he mandado los que me han dado problemas.

> La idea (no recuerdo si me la recomendaste tú) es que cada componente
> sea un "proyecto" independiente, de tal forma que no sea necesario
> compilar todos para trabajar con uno únicamente. Lo malo, que cada
> CMakeLists.txt será más extenso ya que se definirá en cada uno lo
> necesario para ese componente y no como ahora que dicha comprobación
> se hace en el "raíz" simplificando así el resto.

Si, la idea de que cada componente sea lo suficientemente autónomo para
compilarse por si mismo es algo que tenemos desde hace tiempo en la
cabeza. Pero la idea de los CMakeLists es reutilizar en la medida de lo
posible todas las dependencias. Es decir, si 6 componentes utilizar
gearbox y hay que comprobarlo, deberíamos utilizar includes o herencia
en cmake para solucionar este problema. Al final, sólo debería haber 1
archivo con la especificación exacta de donde se busca gearbox y como se
añaden las librerías. Luego otros 6 archivos, únicamente harían el
típico include para checkear la librería.

Lo más importante de estos procesos es intentar no hardcodear nada en
los ficheros, ni números de versión, ni paths. Si ves que alguno se te
resiste coméntalo en la lista y lo vemos juntos.

Un saludo!

> 
> Un saludo.
> 
> 
> Maikel.
> 
> 
> 
> 
> 2012/5/23 Roberto Calvo <rocapal en libresoft.es>
>         
>         Buenas!
>         
>         Os comento algunos problemillas que he encontrado compilando
>         jderobot
>         con cmake. Pero en general ha ido muy bien la compilación en
>         una debian
>         squeeze.
>         
>         --
>         Me encuentro con esta config en el CMakeLists.txt del
>         proyecto. Si lo
>         miráis, se comprueba el path de gearbox en /usr/ y /usr/local,
>         pero
>         luego sólo se incluye el directorio de /usr/include
>         y /usr/lib.
>         
>         Debería añadirse dinámicamente el path donde se han encontrado
>         las
>         librerías.
>         
>         
>         # CHECK GEARBOX
>         FIND_LIBRARY(with_gearbox
>            NAMES GbxGarminAcfr GbxIceUtilAcfr
>            PATHS /usr/lib/gearbox /usr/local/lib/gearbox)
>         IF(NOT with_gearbox)
>            MESSAGE (FATAL_ERROR "*** Gearbox libraries: GbxUtilAcfr or
>         GbxIceUtilAcfr not found")
>         ENDIF()
>         include_directories(/usr/include/gearbox)
>         link_directories(/usr/lib/gearbox)
>         
>         --
>         En el siguiente archivo aparece definida una función en el cpp
>         que
>         pertenece a la clase, pero no está definida en el .h, por lo
>         que da
>         error. Es necesario poner la definición pública en el .h para
>         que
>         funcione toda la compilación correctamente.
>         
>         /home/jderobot/trunk/src/components/introrob/API.cpp:166:
>         error: no
>         ‘void introrob::Api::drawSphere(CvPoint3D32f, CvPoint3D32f)’
>         member
>         function declared in class ‘introrob::Api’
>         
>         --
>         Es necesario añadir la comprobación de los paquetes, gsl-bin
>         libgsl0-dev. En el cmake no los pide, y luego falla al
>         compilar.
>         
>         --
>         Es necesario comprobar la existencia de gazebo y player para
>         algunos
>         componentes porque si no también falla.
>         
>         
>         --
>         Roberto Calvo Palomino          | Libre Software Engineering
>         Lab (GSyC)
>         R&D Android Mobile Engineer     | Universidad Rey Juan Carlos
>         Tel: (+34) 91 488 87 73         | Edif. Biblioteca - Despacho
>         B103
>         
>         Twitter: @rocapal
>         Linkedin: http://www.linkedin.com/in/rocapal
>         
>         
>         _______________________________________________
>         Jde-developers mailing list
>         Jde-developers en gsyc.es
>         http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>         
> 
> 
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers

-- 
Roberto Calvo Palomino          | Libre Software Engineering Lab (GSyC) 
R&D Android Mobile Engineer     | Universidad Rey Juan Carlos
Tel: (+34) 91 488 87 73         | Edif. Biblioteca - Despacho B103

Twitter: @rocapal 
Linkedin: http://www.linkedin.com/in/rocapal

------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : no disponible
Tipo       : application/pgp-signature
Tamaño     : 198 bytes
Descripción: This is a digitally signed message part
Url        : http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20120524/93d2bb56/attachment.pgp 


More information about the Jde-developers mailing list