<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    &nbsp; Hola Mikel,<br>
    <br>
    &nbsp; menudo manual que nos acabas de mostrar. Enhorabuena por el
    currele.<br>
    &nbsp; Perdona que no te respondiera antes, pero creo que hab&iacute;as tenido
    alg&uacute;n problema con el componente GiraffeServer. No se si lo habr&aacute;s
    resuelto ya.<br>
    &nbsp; Aqu&iacute; la clave est&aacute; en que ese componente depende del c&oacute;digo de la
    UNEX, de ah&iacute; que sea un tanto "raro" respecto a la forma de compilar
    del resto. Para compilarlo correctamente hay que seguir los pasos
    que tenemos puesto en un README que hay dentro de la carpeta del
    componente, pero b&aacute;sicamente, si te fijas, la compilaci&oacute;n tira de
    qmake.<br>
    <br>
    &nbsp; C&oacute;mo adaptar eso a cmake, no me hagas mucho caso, pero creo que
    incluso te ser&aacute; m&aacute;s sencillo que el resto de componentes.<br>
    <br>
    &nbsp; Ya nos cuentas. Un saludo,<br>
    <br>
    &nbsp; Julio<br>
    <br>
    El 22/03/12 01:37, Mikel Gonzalez Baile escribi&oacute;:
    <blockquote
cite="mid:CAOff0X6zS4Sgd3QMGxJKxF3s-Q0aA+4RzTQ1Qiq-EpRTpk2Gbw@mail.gmail.com"
      type="cite">
      <div>Hola a todos,</div>
      <div><br>
      </div>
      <div>como ya coment&eacute; he estado portando la cadena de compilaci&oacute;n
        de JDErobot de Autotools a CMake y ya est&aacute; listo (ahora vienen
        las pruebas). Hemos pensado que como Autotools ahora mismo est&aacute;
        "roto" ser&iacute;a buena idea subir al repositorio la misma copia que
        hay pero lista para funcionar con CMake, y si diese alg&uacute;n
        problema siempre se puede tirar de los Makefiles propios con los
        que se compilaba ahora cada uno de ellos.</div>
      <div><br>
      </div>
      <div>Aunque a&ntilde;adir&eacute; documentaci&oacute;n en el manual, os hago aqu&iacute; una
        "breve" descripci&oacute;n para utilizar la nueva herramienta:</div>
      <div><br>
      </div>
      <div>- Para construir el sistema:</div>
      <div><span class="Apple-tab-span" style="white-space:pre"> </span>*
        cd $JDErobot/build -&gt; En este directorio se almacenar&aacute;n los
        ficheros que CMake utiliza para su gesti&oacute;n</div>
      <div><span class="Apple-tab-span" style="white-space:pre"> </span>*
        cmake .. -&gt; Viene a ser el configure de Autotools:
        Comprobaci&oacute;n de paquetes, establecer variables de entorno, ...</div>
      <div><span class="Apple-tab-span" style="white-space:pre"> </span>*
        make -&gt; Compila, enlaza y genera librer&iacute;as, interfaces y
        componentes.</div>
      <div><span class="Apple-tab-span" style="white-space:pre"> </span>*
        sudo make install -&gt; Para copiar todo a nuestro equipo (se
        mantienen las rutas donde se copia v&iacute;a paquete)</div>
      <div><br>
      </div>
      <div>- Para limpiar:</div>
      <div><span class="Apple-tab-span" style="white-space:pre"> </span>*
        make clean</div>
      <div><span class="Apple-tab-span" style="white-space:pre"> </span>*
        sudo make uninstall</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>Observaciones:</div>
      <div><br>
      </div>
      <div>- Como ver&eacute;is la estructura de directorios es la misma.</div>
      <div><br>
      </div>
      <div>- Ahora mismo casi todos los componentes est&aacute;n actualizados e
        integrados en la cadena, con lo que no deber&iacute;a de haber
        problemas para comenzar a trabajar ya con CMake.</div>
      <div><br>
      </div>
      <div>- Para la compilaci&oacute;n y enlazado de los componentes con las
        librer&iacute;as propias (jderobotice, jderobotinterfaces,
        visionlib...) se hace uso de las que se generan en la propia
        copia del repositorio al lanzar el CMake, de esta forma si en un
        futuro se modifica o a&ntilde;ade alguna siempre trabajamos con la m&aacute;s
        actual. Esto quiere decir que si queremos no es necesario lanzar
        el "make install" ya que podemos trabajar igual.</div>
      <div><br>
      </div>
      <div>- He a&ntilde;adido un fichero de configuraci&oacute;n (jderobot.cfg) en el
        que se encuentran los nombres en formato columna de todos los
        componentes que queremos compilar. Esto es para que quien
        unicamente necesite utilizar uno de ellos no se vea obligado a
        lanzar la cadena para todos, es m&aacute;s, no ser&iacute;a necesario
        descargar todos los componentes. Hay que tener en cuenta que las
        interfaces y librer&iacute;as con las que se enlazan los componentes
        son las que se generan a partir de la copia, con lo que los
        directorios "interfaces" y "libs" s&iacute; son necesarios.</div>
      <div><br>
      </div>
      <div>A&ntilde;adir un componente nuevo:</div>
      <div><br>
      </div>
      <div>He intentado que todos los ficheros CMakeLists.txt (lo que
        sustituye al Makefile.am) sigan un mismo patr&oacute;n para que sea lo
        m&aacute;s f&aacute;cil posible empezar a trabajar con ellos. Los pasos para
        a&ntilde;adir un nuevo componentes ser&iacute;an:</div>
      <div><br>
      </div>
      <div>1) A&ntilde;adir el nombre del nuevo componente en el fichero de
        configuraci&oacute;n "jderobot.cfg".</div>
      <div><br>
      </div>
      <div>2) Crear un CMakeLists.txt dentro del directorio del nuevo
        componente src/components/nuevocomponente que m&aacute;s o menos
        seguir&aacute; el siguiente patr&oacute;n (os dejo un ejemplito):</div>
      <div><br>
      </div>
      <div>SET( SOURCE_FILES API.cpp camera.h camera.cpp control.cpp
        drawarea.cpp gui.cpp introrob.cpp MyAlgorithms.cpp pioneer.c
        pioneeropengl.c) # Ficheros fuente</div>
      <div><br>
      </div>
      <div>include_directories( # el -I de antes. D&oacute;nde buscar&aacute; el
        compilador las cabeceras.</div>
      <div>&nbsp; &nbsp; ${INTERFACES_CPP_DIR}</div>
      <div>&nbsp; &nbsp; ${LIBS_DIR}</div>
      <div>&nbsp; &nbsp; ${CMAKE_CURRENT_SOURCE_DIR}</div>
      <div>&nbsp; &nbsp; ${CMAKE_CURRENT_SOURCE_DIR}/cameras</div>
      <div>)</div>
      <div><br>
      </div>
      <div>set( CMAKE_CXX_FLAGS "-lglut -lgsl -lgslcblas" ) # Opciones
        para el compilador</div>
      <div><br>
      </div>
      <div>link_directories( # D&oacute;nde busca las librer&iacute;as el enlazador.
        Lo que era el -L.</div>
      <div><span class="Apple-tab-span" style="white-space:pre"> </span>/usr/local/lib</div>
      <div>)</div>
      <div><br>
      </div>
      <div>
        add_executable (introrob &nbsp;${SOURCE_FILES}) # Definimos el nombre
        del ejecutable y de los fuente que depende.</div>
      <div><br>
      </div>
      <div>TARGET_LINK_LIBRARIES(introrob # Dependencias para el
        enlazador. Lo que era el -l.</div>
      <div>&nbsp; &nbsp; # Se podr&iacute;a haber puesto aqu&iacute; la librer&iacute;a libgslcblas.so</div>
      <div>&nbsp; &nbsp; ${opencv_LIBRARIES}</div>
      <div>&nbsp; &nbsp; ${gtkmm_LIBRARIES}</div>
      <div>&nbsp; &nbsp; ${libglademm_LIBRARIES}</div>
      <div>&nbsp; &nbsp; ${gthread_LIBRARIES}</div>
      <div>&nbsp; &nbsp; ${libgnomecanvas_LIBRARIES}</div>
      <div>&nbsp; &nbsp; ${libgnomecanvasmm_LIBRARIES}</div>
      <div>&nbsp; &nbsp; ${gtkglextmm_LIBRARIES}</div>
      <div>&nbsp; &nbsp; ${LIBS_DIR}/colorspaces/libcolorspacesmm.so</div>
      <div>&nbsp; &nbsp; ${INTERFACES_CPP_DIR}/jderobot/libJderobotInterfaces.so</div>
      <div>&nbsp; &nbsp; ${LIBS_DIR}/jderobotice/libjderobotice.so</div>
      <div>&nbsp; &nbsp; ${LIBS_DIR}/jderobotutil/libjderobotutil.so</div>
      <div>&nbsp; &nbsp; ${LIBS_DIR}/progeo/libprogeo.so</div>
      <div>&nbsp; &nbsp; ${LIBS_DIR}/pioneer/libpioneer.so</div>
      <div>)</div>
      <div><br>
      </div>
      <div>Como digo al principio a&ntilde;adir&eacute; documentaci&oacute;n en el manual,
        pero mientras tanto os dejo este tocho :-). Espero que no de
        muchos problemas, si los hay dejamos este hilo para irlos
        comentando y solucionando.</div>
      <div><br>
      </div>
      <div>Un saludo!</div>
      <div><br>
      </div>
      <div>Mikel.</div>
      <div><br>
      </div>
      <div id="-chrome-auto-translate-plugin-dialog"
        style="background-image:initial!important;background-color:transparent!important;padding-top:0px!important;padding-right:0px!important;padding-bottom:0px!important;padding-left:0px!important;margin-top:0px!important;margin-right:0px!important;margin-bottom:0px!important;margin-left:0px!important;overflow-x:visible!important;overflow-y:visible!important;text-align:left!important;background-repeat:initial
        initial!important">
        <img moz-do-not-send="true"
          src="http://www.google.com/uds/css/small-logo.png"
          onclick="document.location.href='http://translate.google.com/';"
          style="position: absolute !important; z-index: -1 !important;
          right: 1px !important; top: -20px !important; cursor: pointer
          !important;-webkit-border-radius: 20px; background-color:
          rgba(200, 200, 200, 0.3) !important; padding: 3px 5px 0
          !important; margin: 0 !important;"></div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Jde-developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Jde-developers@gsyc.es">Jde-developers@gsyc.es</a>
<a class="moz-txt-link-freetext" href="http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers">http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Julio Vega | <a class="moz-txt-link-freetext" href="http://robotica-urjc.es/jmvega">http://robotica-urjc.es/jmvega</a>
</pre>
  </body>
</html>