Yes, that's pretty much the setup we have: The common (static) library contains almost all obj's,
and the two exe projects only have a small main.obj and link against the library. I'd like to
eliminate the build(=link) time of child.exe by having the linker link both exes at the same time.
Regards,
Andreas
On 08.02.2013 15:41, Patrick Johnmeyer wrote:
On Fri, Feb 8, 2013 at 8:16 AM, Andreas Haferburg <ahaferb...@scopis.com
<mailto:ahaferb...@scopis.com>> wrote:
What happens is that common is built, then child, then parent, then parent
is executed.
What I'd like to happen is that common is built, then child+parent are
being built concurrently,
and as soon as both are done, parent is executed.
Unfortunately that's just not how dependencies work. If parent is dependent on
child, then child
will build before parent in serial. And since they are both dependent on
common, you essentially
have a linear dependency in your example.
You could break this up by creating a new target that is dependent on child and
parent, and
eliminate parent's direct dependency on child. This will allow child and parent
to be built
simultaneously. You would then need to "do something" with this new target so
that it will cause
"parent" to be run.
You may be able to improve build times (assuming that is the driver) by
invoking the compiler flag
for parallel compilation. Another option may be to convert the majority of
child and parent to
another library, with small simple executable projects that invoke those
libraries. This moves the
dependencies around in a way that you *may* get better build performance ...
but everything I say is
speculative without knowing the nitty gritty of your project -- build times per
project, full
dependency graph, etc.
--
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake