<div dir="ltr"><div><div><div><div><div><div><div>The ninja targets generated by cmake for our project have the .o targets used to build libraries that have order-only dependencies on the dynamic libraries to which the resulting library will be linked. That is<br>
</div>- libfoo.so is built from foo.o and libbar.so<br></div>and <br></div>- foo.o has an order-only dependency on libbar.so<br><br></div>Is this dependency really needed (as opposed to having only a dependency between libfoo.so and libbar.so)? It has the (unfortunate) result that foo.o can&#39;t be built until after libbar.so, reducing parallelism as well as how far you can go if there is a build error in foo.o. Thanks.<br>
<br></div>References<br><br></div>Output of ninja -browse:<br>modules/atom/src/CMakeFiles/imp_atom.dir/__/__/__/src/atom_all.cpp.o<br>target is built using rule CXX_COMPILER of<br><br>lib/libimp_algebra.so (order-only)<br>
lib/libimp_base.so (order-only)<br>lib/libimp_cgal.so (order-only)<br>lib/libimp_container.so (order-only)<br>lib/libimp_core.so (order-only)<br>lib/libimp_display.so (order-only)<br>lib/libimp_kernel.so (order-only)<br>lib/libimp_score_functor.so (order-only)<br>
src/atom_all.cpp<br>dependent edges build:<br><br>lib/libimp_atom.so<br><br><br></div>Order-only dependencies:<br>&lt;<a href="http://martine.github.io/ninja/manual.html#ref_dependencies">http://martine.github.io/ninja/manual.html#ref_dependencies</a>&gt;<br>
</div>