[Jderobot] Cambio estructura subversion

Roberto Calvo rocapal en gsyc.urjc.es
Mie Ago 14 10:23:05 CEST 2013


Hola!

Todo lo que comentas sobre la compilación se reduce a lo mismo. Tienes
que hacer el cmake y el make desde el directorio trunk/. 

La macro list_subdirectories está en trunk/CMakeLists.txt, por eso si
haces el cmake desde components no lo encuentra. Ejecutalo desde el raiz
del proyecto, verás como te funciona sin problemas la macro.

Sobre la librería libxml de la que necesitamos parser.h yo la tengo
instalada aquí:

/usr/include/libxml2/libxml/parser.h

¿Que versión de ubuntu o debian estás utilizando? Si se instalan en
sitios distintos tendré que modificar las Deps de libxml para que busque
en varios sitios.

Lo dicho, prueba a hacer el cmake y make desde el trunk del proyecto, no
desde los subdirectorios, y me cuentass si falla algo para arreglarlo.

Gracias por el feedback!

El mié, 14-08-2013 a las 04:37 +0000, ILDEFONSO GONZALEZ SANCHEZ
escribió:
> Hola buenas noches,
> 
> he intentando compilar el directorio /stable y he encontrado los siguientes problemas:
> -Para los CMakeLists.txt cde los directorios /libs /components a mi no me funcionaban y los he modificado asi:
> CMakelists.txt(libs)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/colorspaces ${CMAKE_CURRENT_SOURCE_DIR}/colorspaces)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/fuzzylib ${CMAKE_CURRENT_SOURCE_DIR}/fuzylib)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/jderobotutil ${CMAKE_CURRENT_SOURCE_DIR}/jderobotutil)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/pioneer ${CMAKE_CURRENT_SOURCE_DIR}/pioneer)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/progeo ${CMAKE_CURRENT_SOURCE_DIR}/progeo)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/geometry ${CMAKE_CURRENT_SOURCE_DIR}/geometry)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/parallelIce ${CMAKE_CURRENT_SOURCE_DIR}/parallelIce)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/visionlib ${CMAKE_CURRENT_SOURCE_DIR}/visionlib)
> 
> CMakelists.txt(components)
> 
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/gazeboserver ${CMAKE_CURRENT_SOURCE_DIR}/gazeboserver)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/introrob ${CMAKE_CURRENT_SOURCE_DIR}/introrob)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/basic_component ${CMAKE_CURRENT_SOURCE_DIR}/basic_component)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/cameraserver ${CMAKE_CURRENT_SOURCE_DIR}/cameraserver)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/cameraview ${CMAKE_CURRENT_SOURCE_DIR}/cameraview)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/opencvdemo ${CMAKE_CURRENT_SOURCE_DIR}/opencvdemo)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/playerserver ${CMAKE_CURRENT_SOURCE_DIR}/playerserver)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/playerserver2.0 ${CMAKE_CURRENT_SOURCE_DIR}/playerserver2.0)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/openniServer ${CMAKE_CURRENT_SOURCE_DIR}/openniServer)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/recorder ${CMAKE_CURRENT_SOURCE_DIR}/recorder)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/remoteConfiguration ${CMAKE_CURRENT_SOURCE_DIR}/remoteConfiguration)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/replayController ${CMAKE_CURRENT_SOURCE_DIR}/replayController)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/replayer ${CMAKE_CURRENT_SOURCE_DIR}/replayer)
> add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/rgbdCalibrator ${CMAKE_CURRENT_SOURCE_DIR}/rgbdCalibrator)
> 
> Yo creo que el problema es la instrucción  list_subdirectories, realmente hacen lo mismo añaden todos los subdirectorios hijos, pero me gustaría saber por que no me funciona con el bucle que esta mucho mejor.
> 
> -Por otro lado he conseguido hacer cmake .  pero al hacer make 
> 
> Scanning dependencies of target progeo
> [ 55%] Building C object stable/libs/progeo/CMakeFiles/progeo.dir/progeo.c.o
> /var/nuevo_svn/trunk/src/stable/libs/progeo/progeo.c:30: fatal error: libxml/parser.h: No existe el archivo o el directorio
> compilation terminated.
> make[2]: *** [stable/libs/progeo/CMakeFiles/progeo.dir/progeo.c.o] Error 1
> make[1]: *** [stable/libs/progeo/CMakeFiles/progeo.dir/all] Error 2
> make: *** [all] Error 2
> 
> y este error me dice que no encuentra libxml/parser.h, pero yo tengo instalado:
> /usr/include/libxml2/parser.h
> 
> Tengo dos dudas:
>  1.¿El problema es que en el fichero progeo.c deberia hacer #include libxml2/parser.h? o ¿O que no lo esta buscando? , yo he visto que si haces cmake. desde trunk si lo encuentra.
> 2. En el caso de que lo debiera buscar, ¿En el CMakeLists.txt de /libs o /libs/progeo?
> Un saludo y gracias,
> 
> Ildefonso González Sánchez
> ________________________________________
> De: ILDEFONSO GONZALEZ SANCHEZ
> Enviado: martes, 13 de agosto de 2013 19:02
> Para: rocapal en gsyc.urjc.es; Maikel González
> CC: jde-developers en gsyc.es
> Asunto: Re: [Jderobot] Cambio estructura subversion
> 
> Hola,
> 
> Yo aún no me he puesto con ello, solo he copiado la version y he intentado instalar la versión estable, esta mañana en una ocasión.
> Pero haciendo un cmake. en el directorio components
> http://svn.jderobot.org/jderobot/trunk/src/stable/components/CMakeLists.txt
> 
> Me esta dando error, por el siguiente comando:
> list_subdirectories( LIST_COMPONENTS ${CMAKE_CURRENT_SOURCE_DIR} 1)
> 
> ¿supongo que su función es buscar todos componentes que haya en ese directorio?
> ¿De ser así deberia modificar el argumento 1?
> 
> Un saludo,
> pd: revisare que hace el comando, ya que seria logico que sacara un listado y luego añadiera cada uno de los CMakeLists hijos. A mi el tema de duplicar los CMake para que se compile cada componente por separado me podria venir bien, par aprender.
> 
> Ildefonso González Sánchez
> ________________________________________
> De: jde-developers-bounces en gsyc.es [jde-developers-bounces en gsyc.es] en nombre de Roberto Calvo [rocapal en gsyc.urjc.es]
> Enviado: martes, 13 de agosto de 2013 7:38
> Para: Maikel González
> CC: jde-developers en gsyc.es
> Asunto: Re: [Jderobot] Cambio estructura subversion
> 
> El lun, 12-08-2013 a las 19:48 +0200, Maikel González escribió:
> > Hola,
> >
> > he probado a compilar introrob desde su respectivo directorio "build/" y
> > parece que la nueva estructura de directorios a roto la compilación por
> > componentes.
> >
> > No sé si es que esta forma de compilación se va a descartar o sería
> > bueno arreglarla. En el segundo de los casos puedo echaros una mano.
> 
> Es algo que no tenemos claro. Luis Roberto también me ha escrito
> comentando algo parecido.
> 
> La compilación por componentes está muy bien pero requiere mucho trabajo
> de mantenimiento, además es necesario tener todo el repositorio
> descargado y tiene dependencias relativas como por ejemplo del
> directorio donde están las librerías. Cambiar un componente de diretorio
> no debería influir en su compilación si queremos que la compilación de
> un componente sea totalmente independiente del proyecto entero.
> 
> La idea es generar un proceso de compilación sencillo y que funcione
> bien, cuando no se encuentren ciertas dependencias desactivar ciertos
> componentes y listo (ahora sea hace con openni, player y gazebo). La
> compilación por componentes ya sea descargándose todo el repositorio o
> solo el componente me gusta, pero requiere mucho trabajo y esfuerzo de
> mantenimiento (duplicamos CMakeList y deps) que creo que no podemos
> abarcar.
> 
> ¿Qué opináis?
> 
> >
> > Un saludo.
> >
> > Maikel.
> >
> > On 12/08/13 12:45, Roberto Calvo wrote:
> > > El lun, 12-08-2013 a las 09:57 +0200, Roberto Calvo escribió:
> > >> Hola!
> > >>
> > >> Durante esta mañana va a estar el repo sin permisos para escribir.
> > >> Estamos haciendo un cambio grande en la estructura del repo y es difícil
> > >> sincronizarlo bien si hay commits de por medio.
> > >>
> > >> En cuanto termine os aviso y comentamos los cambios.
> > > Ya está listo y restaurado los permisos para escribir en el subversion.
> > >
> > > Lo primero de todo es que os lo descarguéis y comprobéis que os compila
> > > bien. Cualquier problema, reportarlo.
> > >
> > > La modificación más grande en la organización del repositorio es que
> > > dentro de src/ tendremos 2 ramas diferencias en cuanto a al estabilidad
> > > del código. La idea es que la compilación de jderobot sea fluida y sin
> > > problemas para aquellos que la tienen que utilizar día a día.
> > >
> > > Tenemos dos directorios dentro de src:
> > >
> > > * "Stable" tiene que compilar siempre y funcionar perfectamente, por lo
> > > tanto cualquier commit debajo de "stable" debéis revisarlo bien.
> > >
> > > * "Testing" es todo aquello que aunque compila correctamente todavía no
> > > pertenece al core de jderobot (quizás nunca lo haga) pero necesita del
> > > entorno para compilar. Por defecto "testing" no se compila, para ello
> > > hay que habilitar la variable de entorno "JDEROBOT_TESTING". Tenemos que
> > > ver qué componentes tienen sentido que los quitemos y dejar solo
> > > accesible mediante el tag, porque están muy muy deprecated.
> > >
> > > Ahora mismo de la parte stable se compila todo excepto los componentes
> > > de gazebo y de player porque es necesario generar bien las dependencias
> > > y activar o desactivar la compilación dependiendo de si se tienen o no.
> > > Necesito gente que trabaje con player y gazebo para dejar listo estos
> > > componentes ¿Quién se anima? ( ¿Edu, Borja, Alex? :-) )
> > >
> > > Algunos cambios (aunque quedará todo esto documentado en el wiki)
> > >
> > > - Para compilar e instalar
> > >
> > >     cmake .
> > >     make
> > >     cmake .
> > >     make install
> > >
> > > [El segundo "cmake ." genera la lista de los .so generados, así no hay
> > > que ponerlos a mano ni asumir que cada librería va a tener un único .so
> > > que se llama igual que el directorio. En el futuro lo cambiaremos para
> > > que las propias librerías se encarguen de instalar su targets].
> > >
> > > - El install de las librerías ha cambiado para que sea genérico y no
> > > haga falta modificar los CMakeList constantemente.
> > >
> > > - La librería geometry ya está incluida dentro de todo el proyecto, asi
> > > no duplicamos código de dependencias.
> > >
> > > - Cuando se crea un nuevo componente o librería no hace falta añadirlo a
> > > los CMakeList, ya se escanea los directorios automáticamente con una
> > > macro de CMAKE y compila todo lo que hay por debajo de components/  y
> > > libs/
> > >
> > >
> > > Creo que no me dejo nada. Lo importante sobre todo, cualquier problema
> > > que tengáis a la hora de compilar con el nuevo cambio comentármelo.
> > >
> > > Un saludo!
> > >
> > >> 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

-- 
Roberto Calvo Palomino        | Robotics Lab (GSyC) 
R&D Android Mobile Engineer   | Universidad Rey Juan Carlos

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



More information about the Jde-developers mailing list