I'm probably missing something, but why

> add_dependencies(parent child)

? That doesn't make sense. Parent is not using anything from child. You can 
just leave that line away and everything will be fine right?

On 2013-08-02, at 16:24:21 , Andreas Haferburg wrote:

> 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

--

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