<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hola Jaime,<br>
      <br>
      veo que tienes un peque&ntilde;o l&iacute;o con el uso de CMake, lo cual es
      normal, es una herramienta muy potente pero hace falta pr&aacute;ctica
      para domesticarla ;-).<br>
      <br>
      Como dir&iacute;a JM, aqu&iacute; van mis dos centavos para que entiendas un
      poco mejor esta herramienta, aunque te sugiero que le eches un
      vistazo a su manual [1] donde te quedar&aacute; todo m&aacute;s claro.<br>
      <br>
      El proceso de generaci&oacute;n de un binario est&aacute; dividido en dos
      etapas, por una parte la compilaci&oacute;n y por otra el enlazado. Para
      la compilaci&oacute;n es necesaria definir d&oacute;nde se encuentran las
      cabeceras (.h) donde est&aacute;n los s&iacute;mbolos que utilizas en tus
      ficheros fuentes, con CMake &eacute;sto se define utilizando:<br>
      <br>
      include_directories()<br>
      <br>
      Seg&uacute;n veo en tu sintaxis de tu CMakeLists.txt, has mezclado
      directorios donde realmente se encuentran este tipo de ficheros:<br>
      <br>
      /usr/local/include/jderobot<br>
      <br>
      con directorios donde se encuentran librer&iacute;as, y no cabeceras:<br>
      <br>
      /usr/local/lib<br>
      <br>
      mientras que el donde se encuentran las librer&iacute;as forma parte del
      enlazado y se indica de la siguiente manera:<br>
      <br>
      link_directories()<br>
      <br>
      Por &uacute;ltimo y para terminar el proceso (a parte de definir el
      ejecutable) es necesario especificar de cuales librer&iacute;as hace uso
      tu aplicaci&oacute;n, para ello tenemos:<br>
      <br>
      TARGET_LINK_LIBRARIES()<br>
      <br>
      Resumiendo, especificamos d&oacute;nde est&aacute;n las cabeceras, d&oacute;nde est&aacute;n
      las librer&iacute;as y qu&eacute; librer&iacute;as son necesarias.<br>
      <br>
      Si tratamos de seguir un patr&oacute;n para todos los ficheros
      CMakeLists.txt podemos dividir su definici&oacute;n en varias etapas:<br>
      <br>
      1) Definir los ficheros fuentes que conforman tu aplicaci&oacute;n:<br>
      <br>
    </div>
    <blockquote cite="mid:1361916346367-4641100.post@n4.nabble.com"
      type="cite">
      <pre wrap="">SET( SOURCE_FILES  Printer.cpp Server.cpp)</pre>
    </blockquote>
    Bien hecho.<br>
    <br>
    2) Definir los directorios donde se encuentran las cabeceras
    inclu&iacute;das en tu aplicaci&oacute;n. Puesto que tu aplicaci&oacute;n hace uso de
    ICE, es necesario especificar donde se encuentran las cabeceras de
    estas librer&iacute;as. Para facilitar la tarea de futuros programadores,
    a&ntilde;ad&iacute; en el repositorio un directorio llamado "Deps/" que incluye
    una carpeta, "ice", donde se establecen de forma &oacute;ptima todas las
    rutas en las que se encuentra ICE en tu sistema, tanto cabeceras
    como librer&iacute;as. De tal forma que el c&oacute;digo necesario para hacer uso
    de ICE es:<br>
    <br>
    <meta http-equiv="content-type" content="text/html;
      charset=ISO-8859-1">
    <a
      href="http://www.cmake.org/cmake/help/cmake2.6docs.html#command:set"
      style="color: rgb(0, 0, 0); text-decoration: none; outline: none
      !important; font-family: Consolas, monospace; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: 16.890625px; orphans: auto;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;"><span
        style="color: rgb(31, 63, 129);">SET</span></a><span
      style="font-family: Consolas, monospace; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: 16.890625px; orphans: auto;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      color: rgb(25, 125, 139);">(</span><span style="color: rgb(128,
      128, 128); font-family: Consolas, monospace; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: 16.890625px; orphans: auto;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(248, 248, 248); display: inline !important;
      float: none;"><span class="Apple-converted-space">&nbsp;</span>DEPS_DIR<span
        class="Apple-converted-space"> </span></span><span
      style="color: rgb(128, 128, 128); font-family: Consolas,
      monospace; font-size: 13px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      16.890625px; orphans: auto; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(248, 248,
      248); display: inline !important; float: none;"><span
        class="Apple-converted-space"></span></span><span
      style="font-family: Consolas, monospace; font-size: 13px;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: 16.890625px; orphans: auto; text-align: left;
      text-indent: 0px; text-transform: none; white-space: normal;
      widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102);
      font-style: italic;">#Directorio donde se encuentra la carpeta
      Deps</span><span style="color: rgb(128, 128, 128); font-family:
      Consolas, monospace; font-size: 13px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: 16.890625px; orphans: auto; text-align: left;
      text-indent: 0px; text-transform: none; white-space: normal;
      widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(248, 248,
      248); display: inline !important; float: none;"></span><span
      style="font-family: Consolas, monospace; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: 16.890625px; orphans: auto;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      color: rgb(25, 125, 139);">)</span><span style="color: rgb(128,
      128, 128); font-family: Consolas, monospace; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: 16.890625px; orphans: auto;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(248, 248, 248); display: inline !important;
      float: none;"><span class="Apple-converted-space"> </span></span><br>
    <meta http-equiv="content-type" content="text/html;
      charset=ISO-8859-1">
    <a
      href="http://www.cmake.org/cmake/help/cmake2.6docs.html#command:include"
      style="color: rgb(0, 0, 0); text-decoration: none; outline: none
      !important; font-family: Consolas, monospace; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: 16.890625px; orphans: auto;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;"><span
        style="color: rgb(31, 63, 129);">include</span></a><span
      style="font-family: Consolas, monospace; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: 16.890625px; orphans: auto;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      color: rgb(25, 125, 139);">(</span><span style="font-family:
      Consolas, monospace; font-size: 13px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: 16.890625px; orphans: auto; text-align: left;
      text-indent: 0px; text-transform: none; white-space: normal;
      widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; color: rgb(176, 128, 0);">${DEPS_DIR}</span><span
      style="color: rgb(128, 128, 128); font-family: Consolas,
      monospace; font-size: 13px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      16.890625px; orphans: auto; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(248, 248,
      248); display: inline !important; float: none;">/ice/CMakeLists.txt</span><span
      style="font-family: Consolas, monospace; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: 16.890625px; orphans: auto;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      color: rgb(25, 125, 139);">)</span><br>
    <br>
    Al igual ocurre con gearbox, OpenCV y otras dependencias que puedes
    encontrar ya resueltas en ese directorio.<br>
    <br>
    Para aquellas cabeceras que no est&aacute;n ya definidas en el directorio
    "Deps/", debes incluir la ruta de donde se encuentran haciendo uso,
    como ya he citado, de la sentencia:<br>
    <br>
    include_directories(<br>
    &nbsp;&nbsp;&nbsp; /usr/local/include<br>
    &nbsp;&nbsp;&nbsp; /usr/local/include/jderobot<br>
    &nbsp;&nbsp;&nbsp; #etc, etc<br>
    <span style="color: rgb(128, 128, 128); font-family: Consolas,
      monospace; font-size: 13px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      16.890625px; orphans: auto; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(248, 248,
      248); display: inline !important; float: none;"></span>&nbsp;&nbsp;&nbsp; )<br>
    <br>
    3) Definir donde se encuentran las librer&iacute;as de las que vas a hacer
    uso. En este caso ocurre como en el punto 2), si has hecho uso del
    directorio Deps/ para alguna dependencia no ser&aacute; necesario
    especificar nada, si por el contrario debes especificarlo a mano:<br>
    <br>
    link_directories(<br>
    &nbsp;&nbsp;&nbsp; /usr/local/lib<br>
    &nbsp;&nbsp;&nbsp; /usr/local/lib/jderobot<br>
    &nbsp;&nbsp;&nbsp; # etc, etc<br>
    )<br>
    <br>
    4) Definir el ejecutable a partir de los ficheros fuentes fijados en
    el paso 1):<br>
    <br>
    <blockquote cite="mid:1361916346367-4641100.post@n4.nabble.com"
      type="cite">
      <pre wrap="">add_executable (server  ${SOURCE_FILES})
</pre>
    </blockquote>
    <br>
    5) Especificar las librer&iacute;as de las que vas a hacer uso. Nuevamente,
    si has hecho uso del directorio Deps/, las librer&iacute;as de ICE quedan
    almacenadas en una variable (ZeroCIce_LIBRARIES<span style="color:
      rgb(176, 128, 0); font-family: Consolas, monospace; font-size:
      13px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: 16.890625px; orphans:
      auto; text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(248, 248, 248); display: inline !important;
      float: none;"></span>), con lo que simplemente har&aacute; falta incluir
    esta variable en la sentencia "TARGET_LINK_LIBRARIES". Te dejo un
    ejemplo de como especificar que tu ejecutable hace uso de ICE y de
    otra librer&iacute;a que hay que especificar manualmente:<br>
    <br>
    TARGET_LINK_LIBRARIES(<br>
    &nbsp;&nbsp;&nbsp; /usr/local/lib/jderobot/libcolorspacesmm.so # A&ntilde;adida
    manualmente<br>
    &nbsp;&nbsp;&nbsp; ${ZeroCIce_LIBRARIES<span style="color: rgb(176, 128, 0);
      font-family: Consolas, monospace; font-size: 13px; font-style:
      normal; font-variant: normal; font-weight: normal; letter-spacing:
      normal; line-height: 16.890625px; orphans: auto; text-align: left;
      text-indent: 0px; text-transform: none; white-space: normal;
      widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(248, 248,
      248); display: inline !important; float: none;"></span>} # A&ntilde;adida
    haciendo uso de la variable<br>
    )<br>
    <br>
    Bueno, espero que mi serm&oacute;n te sirva de ayuda para entender un poco
    mejor la herramienta CMake y te ayude en tus futuras compilaciones
    :-).<br>
    <br>
    Un saludo.<br>
    <br>
    Mikel.<br>
  </body>
</html>