<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">All OUTPUT files O0, O1, O2,... depends
      on all DEPENDS files I0, I1, I2,...<br>
      <br>
      See this discussion:
      <a class="moz-txt-link-freetext" href="http://www.cmake.org/pipermail/cmake/2014-October/058824.html">http://www.cmake.org/pipermail/cmake/2014-October/058824.html</a><br>
      <br>
      On 04-Feb-15 17:14, CREMARENCO Cosmin wrote:<br>
    </div>
    <blockquote
cite="mid:71F64EA53CF7EA488875E561C7BE0C1004DB8D87@FR-FRDC2-MB-P2.fr.murex.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="Generator" content="Microsoft Word 14 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span lang="EN-US">Hello,<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">We use CMake and among
            other things CMake is used for generating code at
            compilation time.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">We have a custom command
            like so:<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">add_custom_command(OUTPUT
            O0, O1, O2…On<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">                  
            launch-generation-command<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">                 
             DEPENDS I0, I1, I2, ….In<o:p></o:p></span></p>
        <p class="MsoNormal" style="text-indent:35.4pt"><span
            lang="EN-US">   VERBATIM)<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">So there are multiple
            inputs and multiple outputs (why not launch the command for
            each input and have only one output? – it would take too
            much time combined, a jvm is launched every time and there
            are a lot of generated files).<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">The command that is
            launched is intelligent enough to not touch output if its
            corresponding input has not changed.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Now I’m coming to the
            problem: when I touch an input Ix, I expect that output Ox
            is regenerated. That works great, make will launch the
            custom command and Ox will be generated and compiled
            afterwards. But, subsequent runs of make will still launch
            the custom command which is not ok. By digging in the
            generated Makefiles I see that cmake will hang the custom
            command under one of the outputs (arbitrarily?). If that
            output is not exactly the input that I touch, given that the
            generator will only output code for what has really changed,
            the target will always be invalid and make will always
            launch the custom command. Is there a solution for this?
            <o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">It seems obvious to me
            that if the oldest output is more recent than the newest
            input then the custom command shouldn’t be called.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Visual Studio is even
            worse. Besides launching the custom command every time, it
            will recompile all outputs because, my guess is that after
            the custom command has run it won’t even bother to check
            that the .obj is more recent than the corresponding .cpp.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Sorry for the somewhat
            terse mail and thanks in advance!<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Cosmin<o:p></o:p></span></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
      <p class="ecxMsoNormal" style="line-height: 19px; margin: 0px 0px
        0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;
        color: #2a2a2a; ">*******************************</p>
      <p class="ecxMsoNormal" style="line-height: 19px; margin: 0px 0px
        0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;
        color: #2a2a2a; "><span style="line-height: 17px; font-size:
          10pt; color: black; font-family: Arial; " lang="EN-GB">This
          e-mail contains information for the intended recipient only.
          It may contain proprietary material or confidential
          information. If you are not the intended recipient you are not
          authorised to distribute, copy or use this e-mail or any
          attachment to it. </span><span style="font-family: Arial"
          color="black" size="2"><span style="line-height: 17px;
            font-size: 10pt; ">Murex cannot guarantee that it is virus
            free and accepts no responsibility for any loss or damage
            arising from its use. If you have received this e-mail in
            error please notify immediately the sender and delete the
            original email received, any attachments and all copies from
            your system.</span></span></p>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    <br>
  </body>
</html>