<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'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><<a href="http://martine.github.io/ninja/manual.html#ref_dependencies">http://martine.github.io/ninja/manual.html#ref_dependencies</a>><br>
</div>