[Jderobot] : Duda CMakeLists.txt para dependencias

Alberto Martin almartinflorido en gmail.com
Vie Nov 21 12:33:58 CET 2014


Buenas Roberto,


*Si he entendido bien el sdk de parrot va fuera de jderobot y no lo
subiremos al subversion ¿verdad?*

En principio así es. El SDK comprimido ocupa 10 MB y pensé que sería
excesivo para el respositorio. Si que sería interesante añadirlo a los
paquetes (cuando los creemos), ¿no crees?.


*Y solo por confirmar, todo lo que hay debajo de ardrone_server/src/ ¿es
código tuyo? ¿O hay cosas que pertenezcan al SDK?*

ardrone_server se basa en ardrone_autonomy [1] que es un paquete de ROS. A
su vez, ardrone_autonomy es un fork de ardrone_brown que fue abandonado.
Por lo que bajo el directorio src/ hay código principalmente modificado de
ardrone_autonomy entremezclado con código generado por mí. En
src/components (he cambiado el nombre del directorio :-)) está el código de
las implementaciones de las interfaces. Todas, excepto cameraserver, fueron
creadas por mí.



*Por cierto, todo tu código tanto el cpp como el .h como los slice debería
llevar la cabecera de la licencia. Te dejo unos ejemplos (por supuesto,
pones tu nombre y correo).*

Ok. Los voy modificando. Pero me surgen un par de dudas: (1) en
ardrone_server reutilice el código de cameraserver, concretamente cambie el
modo que recoge las imágenes. Cameraserver tiene su propia cabecera de
licencia, ¿al haber modificado el código original tengo que mantener la
licencia que ya tenía y añadir la mia?. (2) Como te comentaba antes,
algunos ficheros son una mezcla entre código reutilizado de
ardrone_autonomy y el mio. Los ficheros originales de ardrone_autnomy no
contenían cabeceras de licencias y tampoco me parecería correcto añadir la
mia ¿que puedo hacer en este caso?.




*En cuanto dejemos cerrado las cosas de arriba, lo puedes subir tu sin
problema. Con que lo hayas probado y chequeado es suficiente. Tenemos
Jenkis para hacer la integración continua y avisará si algo falla.*

No tengo experiencia con Jenkis pero para poder compilar ardrone_server es
necesario tener las librerías del sdk de parrot. Imagnio que Jenkis
intentará compilar el componente y fallará, ¿no?.

Otra cosa, el sdk de parrot trae una versión de ffmpeg modficada. Al
realizar la compilación, si el sistema ya tiene instaladas las librerias de
ffmpeg, es posible que se cree un conflicto en las librerías. Para evitar
esto, el script que compila del sdk de parrot guarda los .so y los .a en
/usr/local/lib/jderobot/ardrone. Así, el CMakeList de las dependencias de
ardrone solamente busca las librerías en el directorio
/usr/local/lib/jderobot/ardrone.

Por último el sdk de parrot tiene un script que verifica ciertas
dependencias del propio sdk con otros paquetes, en caso de no tenerlos
instalados, los instala automáticamente mediante apt. ¿Sería conveniente
añadir a la wiki de jderobot estas dependencias para que se instalen antes
de la compilación o dejamos que el script las instale cuando el usuario
tenga que compilar el sdk de parrot?.

Un saludo y muchas gracias

[1]: https://github.com/AutonomyLab/ardrone_autonomy


2014-11-20 18:45 GMT+01:00 Roberto Calvo <rocapal en gsyc.urjc.es>:

>
> Hola Alberto,
>
> El jue, 20-11-2014 a las 12:47 +0100, Alberto Martin escribió:
> > Muchas gracias Roberto.
> >
> > De todas formas, ¿hay opción de compilar el sdk de parrot para que
> > genere las librerías dinámicas? (así ocupará mucho menos el
> > ejecutable).
> >
> >
> > He conseguido que las librerías de ffmpeg del sdk de ardrone sean
> > dinámicas, mientras que las propias del sdk no. En cualquier caso
> > estas últimas son tres y ocupan 8KB. De todos modos intentaré
> > dedicarle más tiempo.
>
> Entonces tampoco es tan importante, pensaba que ocupaba mucho más.
>
> >
> >
> > Ya he terminado el cmake de las dependencias y el del componente para
> > integrarlo en la cadena de compilación. He probado con una copia del
> > svn en mi equipo y compila bien. Obviamente antes de realizar la
> > compilación se tendrá que compilar e instalar el sdk de parrot. Para
> > esto último he preparado un tar.gz con un script que realiza la
> > instalación, lo subiré a mi espacio en disco (como openni) y explicaré
> > en el wiki como instalarlo.
>
> Si he entendido bien el sdk de parrot va fuera de jderobot y no lo
> subiremos al subversion ¿verdad?
>
> Y solo por confirmar, todo lo que hay debajo de ardrone_server/src/ ¿es
> código tuyo? ¿O hay cosas que pertenezcan al SDK?
>
> La carpeta interfaces quizás lleva a confusión, ya que dentro tienes tu
> implementación de las interfaces que usas. Mira a ver si podemos darle
> otro nombre a esa carpeta.
>
> Por cierto, todo tu código tanto el cpp como el .h como los slice
> debería llevar la cabecera de la licencia. Te dejo unos ejemplos (por
> supuesto, pones tu nombre y correo).
>
>
> https://svn.jderobot.org/jderobot/trunk/src/stable/interfaces/slice/jderobot/recorder.ice
>
> https://svn.jderobot.org/jderobot/trunk/src/stable/components/rgbdCalibrator/calibration.cpp
>
>
> > Lo he dejado todo en mi repositorio [1], si teneis un hueco me
> > gustaría que lo revisarais para que deis el visto bueno.
>
> En cuanto dejemos cerrado las cosas de arriba, lo puedes subir tu sin
> problema. Con que lo hayas probado y chequeado es suficiente. Tenemos
> Jenkis para hacer la integración continua y avisará si algo falla.
>
> Un saludo!
> >
> > Un saludo
> >
> > [1]:
> >
> https://svn.jderobot.org/users/amartinflorido/tfm/trunk/cadena_compilacion/
> >
> >
> >
> > 2014-11-16 10:37 GMT+01:00 Roberto Calvo <rocapal en gsyc.urjc.es>:
> >         Hola Alberto,
> >
> >         Como son librerías que vienen de una compilación externa
> >         (parrot en tu
> >         caso), las metería todas en el mismo CMakeList.txt (en
> >         Deps/parrot/ por
> >         ejemplo).
> >
> >         De todas formas, ¿hay opción de compilar el sdk de parrot para
> >         que
> >         genere las librerías dinámicas? (así ocupará mucho menos el
> >         ejecutable).
> >
> >         El vie, 14-11-2014 a las 12:50 +0100, Alberto Martin escribió:
> >         > Buenas a todos,
> >         >
> >         >
> >         > para integrar mi componente (ardrone_server) en la cadena de
> >         > compilación de JDERobot necesito crear los CMakeLists.txt
> >         > correspondientes para las dependencias. Mi componente
> >         depende del SDK
> >         > de Parrot que, una vez compilado, crea 5 librerías
> >         estáticas.
> >         > Concretamente son:
> >         >
> >         > -libavcodec.a
> >         >
> >         > -libavdvice.a
> >         >
> >         > -libavfilter.a
> >         >
> >         > -libavformat.a
> >         >
> >         > -libavutil.a
> >         >
> >         > -libpc_ardrone.a
> >         >
> >         > -libpc_ardrone_notool.a
> >         >
> >         > -libsdk.a
> >         >
> >         > -libswscale.a
> >         >
> >         > -libvlib.a
> >         >
> >         >
> >         > Probablemente os suene alguna librería porque el SDK de
> >         ardrone tiene
> >         > una versión customizada de ffmpeg. Mi pregunta es ¿debería
> >         crear un
> >         > CMakeLists.txt por librería o sería mejor crear un único
> >         > CMakeLists.txt con todas la dependencias?.
> >         >
> >         >
> >         > Un saludo
> >         >
> >
> >         > _______________________________________________
> >         > Jde-developers mailing list
> >         > Jde-developers en gsyc.es
> >         >
> >
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
> >
> >         --
> >         Roberto Calvo Palomino        | Robotics Lab (GSyC)
> >         R&D Android Mobile Engineer   | Universidad Rey Juan Carlos
> >
> >         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        | Robotics Lab (GSyC)
> R&D Android Mobile Engineer   | Universidad Rey Juan Carlos
>
> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20141121/899d6436/attachment.htm 


More information about the Jde-developers mailing list