<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 14, 2019 at 1:13 AM Paul Smith <<a href="mailto:paul@mad-scientist.net">paul@mad-scientist.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I have a situation where I've created a custom command to generate .cpp<br>
files to be compiled (in my case running bison/flex).<br>
<br>
I'm using CMake 3.13.4<br>
<br>
  set(MyParserOutput<br>
      ${OUT_DIR}/MyParser.tab.cpp<br>
      ${OUT_DIR}/MyParser.tab.hpp)<br>
<br>
  add_custom_target(MyGenParser DEPENDS ${MyParserOutput})<br>
<br>
Then I have two different libraries, both depending on this:<br>
<br>
  add_library(OneLib STATIC ${MyParserOutput} ...)<br>

  add_dependencies(OneLib MyGenparser)<br>
<br>
<br>
  add_library(TwoLib STATIC ${MyParserOutput} ...)<br>

  add_dependencies(TwoLib MyGenparser)<br>
<br>
<br></blockquote><div>From add_custom_command() <br></div><div>Do not list the output in more than one independent target that
may build in parallel or the two instances of the rule may conflict
(instead use the <span class="gmail-target" id="gmail-index-0-command:add_custom_target"></span><a class="gmail-reference gmail-internal" href="https://cmake.org/cmake/help/v3.14/command/add_custom_target.html#command:add_custom_target" title="add_custom_target"><code class="gmail-xref gmail-cmake gmail-cmake-command gmail-docutils gmail-literal gmail-notranslate"><span class="gmail-pre">add_custom_target()</span></code></a> command to drive the
command and make the other targets depend on that one)</div><div><br></div><div>Removing ${MyParserOutput} from both add_library() should fix the issue.</div><div><br></div><div>Best regards,</div><div>F<br></div></div></div>