<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Thanks a lot, <br>
    Your suggestion worked really well, I ' m now able to separate
    download source and build into two separate projects,<br>
    I have added a &lt;STAMP_DIR&gt; line into source building project
    to keep git download stamp out of binary dir and side to source, so<br>
    even if i completely empty the binary dir, the source project does
    not get rebuilt <br>
    <br>
    Regarding passing vars from "meta" project to external slave
    projects, for cache variables, the TYPE can be found by doing<br>
    <br>
    get_property(mytype CACHE ${myvar} PROPERTY TYPE) but I do not have
    found any way to get it.<br>
    Is due to my ignorance or really variables have no type defined?<br>
    <br>
    Thanks again<br>
    <br>
    Luigi<br>
    <br>
    <br>
    On 10/02/2011 8.39, Jean-Christophe Fillion-Robin wrote:
    <blockquote
      cite="mid:AANLkTi=ydaM8UGsC9Hspdjhj64mxX8+4Hd4hOj6DdvUf@mail.gmail.com"
      type="cite">Hi Luigi, <br>
      <br>
      You will find some comments below ... <br>
      <br>
      Jc<br>
      <br>
      <div class="gmail_quote">On Wed, Feb 9, 2011 at 9:07 AM, Luigi
        Calori <span dir="ltr">&lt;<a moz-do-not-send="true"
            href="mailto:l.calori@cineca.it">l.calori@cineca.it</a>&gt;</span>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">Hi everybody,<br>
          I' m trying to use ExternalProject to wrap serveral building
          recipies for different packages I have to use:<br>
          I am taking the habit of using it as a replacement of shell
          scripts or manual session for building from source.<br>
          In my usage I found some problems, possibly due to my
          ignorance, so please forgive me:<br>
          <br>
          1) I would like to build the same package from the same source
          multiple times (for example because I need to change some
          config (shared/non shared)<br>
          &nbsp; &nbsp;or build (debug /release) ... I would like to keep a common
          source dir across the different builds...<br>
          &nbsp; &nbsp;So I tried to specify a source dir outside binary dir, but
          the &nbsp;the download and patch steps seem repeated even if the
          source is already present<br>
          &nbsp; &nbsp;(the download step can be &nbsp; saved)<br>
          &nbsp; &nbsp;Is this behavior intended or am I missing something?<br>
          &nbsp; &nbsp;I have tried to split the projects in two: one that
          download and patch the source and another that build it, but<br>
          &nbsp; &nbsp;unfortunately the build only project complain that is
          source dir is empty at meta-project configure time.<br>
        </blockquote>
        <div><br>
          Have a look at the CMakeLists.txt enclosed. It basically
          checkout a project using a first external project and then
          configure+built in second external project depending on the
          first one.<br>
          <br>
          &nbsp;<br>
        </div>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;"> &nbsp; The problem seems that the stamp files
          that decide weather a step has to be executed, are collected
          on the same STAMP_DIR:<br>
          &nbsp; For a previous version of the module, I patched it by adding
          a SOURCE_STAMP_DIR that differentiate the folder where the
          stamps files are kept,<br>
          &nbsp; between &nbsp;download and patch step, and the other stepsI.<br>
          &nbsp; could that be generally useful? In case I could try to dive
          in and file a feature request + patch<br>
        </blockquote>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">
          <br>
          2) Regarding VCS, I see that CVS, SVN and GIT are now
          supported, I' ve to use also Bazaar and Mercurial,<br>
          &nbsp; &nbsp;is it possible to use DOWNLOAD_COMMAND for addressing
          those, are there any examples?<br>
          &nbsp; &nbsp;otherwise would it be useful to add new BZR_REPOSITORY and
          HG_REPOSITORY commands?<br>
        </blockquote>
        <div>&nbsp;</div>
        <div>You will have to use both the DOWNLOAD and the UPDATE
          command.<br>
          <br>
          I am not familiar with bazaar or mercurial .. but if the
          "initial checkout or clone" and the following "update or pull"
          associated with these repository can be achieved using a
          single command line. It should be pretty straightforward.<br>
          <br>
          Otherwise, you&nbsp; could either:<br>
          <br>
          &nbsp; - create a cmake files that could be invoked as download and
          update command&nbsp; (${CMAKE_COMMAND} -P
          /path/to/your/bazaar-download-script.cmake, ${CMAKE_COMMAND}
          -P /path/to/your/bazaar-update-script.cmake)<br>
          <br>
          &nbsp; - patch ExternalProject and submit a patch<br>
          <br>
          &nbsp;</div>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">
          <br>
          3) In case of Cmake based projects, &nbsp;there seem no way to
          inherit &nbsp;variables or settings from the "meta" project into
          the ExternalProject apart from explicitly listing<br>
          &nbsp; &nbsp;definition variables as CMAKE_ARGS -Dvar1:var1type=${var1}
          -Dvar2:var2type=${var2} .<br>
          &nbsp; &nbsp;Is that tue or there is some other way to do it? ... &nbsp;</blockquote>
        <div>&nbsp;</div>
        <div>Option and cmake variables defined in the "meta" project
          could be used to configure any external project. As of today,
          there is no way of automatically guessing with which External
          project these options and variables should be assigned to.<br>
          That means the options should be explicitly associated with an
          external project&nbsp; (using CMAKE_ARGS). <br>
          &nbsp;</div>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">
          and in case, is the &nbsp; vartype needed?<br>
        </blockquote>
        <div><br>
          Under the hood, cmake is invoked, if no vartype is specified,
          it default to "UNINITIALIZED". See <a moz-do-not-send="true"
href="http://www.cmake.org/cmake/help/cmake-2-8-docs.html#property:TYPE">http://www.cmake.org/cmake/help/cmake-2-8-docs.html#property:TYPE</a><br>
          <br>
          If you omit to specify the type, the variable won't show in
          both ccmake and cmake-gui.<br>
          <br>
          &nbsp;</div>
        <div><br>
        </div>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">
          <br>
          <br>
          Sorry for the length and thanks a lot in advance<br>
          <br>
          Luigi<br>
          <br>
          <br>
          <br>
          _______________________________________________<br>
          Powered by <a moz-do-not-send="true"
            href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
          <br>
          Visit other Kitware open-source projects at <a
            moz-do-not-send="true"
            href="http://www.kitware.com/opensource/opensource.html"
            target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
          <br>
          Please keep messages on-topic and check the CMake FAQ at: <a
            moz-do-not-send="true"
            href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
          <br>
          Follow this link to subscribe/unsubscribe:<br>
          <a moz-do-not-send="true"
            href="http://www.cmake.org/mailman/listinfo/cmake"
            target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br>
        </blockquote>
      </div>
      <br>
      <br clear="all">
      <br>
      -- <br>
      Direct: 1-518-836-2174<br>
      Ext: 304<br>
    </blockquote>
    <br>
  </body>
</html>