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

Reply via email to