[CMake] Dependency for launching an application

Petr Kmoch petr.kmoch at gmail.com
Mon Feb 11 05:28:04 EST 2013


Hi Andreas.

Would it be an option to change your VS settings and in 'Tools > Options >
Projects and Solutions > Build and Run', uncheck "Only build startup
projects and dependencies on Run?" If you do that, it will check/rebuild
everything when you hit F5, not just the startup project and its
dependencies. I believe that would fix your issue.

Petr

On Mon, Feb 11, 2013 at 11:22 AM, Andreas Haferburg
<ahaferburg at scopis.com>wrote:

> My initial explanation was bad.
>
> Both parent and child depend on a common library. If something in this lib
> changes, I need both of them to get rebuilt before executing parent.exe,
> since it will run child.exe.
>
> Sorry for the confusion.
>
> Andreas
>
>
>
> On 08.02.2013 19:04, Nick Overdijk wrote:
> > 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 <
> ahaferburg at scopis.com
> >>> <mailto:ahaferburg at 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<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<http://www.cmake.org/Wiki/CMake_FAQ>
> >>
> >> Follow this link to subscribe/unsubscribe:
> >> http://www.cmake.org/mailman/**listinfo/cmake<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<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<http://www.cmake.org/Wiki/CMake_FAQ>
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/**listinfo/cmake<http://www.cmake.org/mailman/listinfo/cmake>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20130211/45511d96/attachment.htm>


More information about the CMake mailing list