[CMake] Building in stages.
Aeschbacher, Fabrice
Fabrice.Aeschbacher at siemens.com
Mon Jun 21 12:46:06 EDT 2010
I would try following in foo/CmakeLists.txt:
add_custom_command(TARGET foo
POST_BUILD
COMMAND touch bar/CMakeLists.txt
)
This will force CMake to re-build the makefiles for 'bar' (because its CMakeLists.txt has been modified)
And of course, add_dependencies(bar foo)
Hope it helps,
Fabrice Aeschbacher
> -----Ursprüngliche Nachricht-----
> Von: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org]
> Im Auftrag von Magnus Therning
> Gesendet: Montag, 21. Juni 2010 17:41
> An: Michael Wild
> Cc: Cmake Mailing List
> Betreff: Re: [CMake] Building in stages.
>
> On Mon, Jun 21, 2010 at 16:10, Michael Wild <themiwi at gmail.com> wrote:
> >
> >> I'm looking for some suggestions on how to tackle a
> problem with staged
> >> builds.
> >>
> >> In trying to convert a project which uses omake to build
> OCaml files I've
> >> stumbled on the issue that building one sub-part (bar) of
> the project needs
> >> the result of another sub-part (foo). The twist is that
> foo is required
> >> already at the dependency-discovery stage of bar[1]. Is
> there some clever way
> >> of working around this?
> >>
> >> One obvious solution would be to simply skip automatic
> generation of
> >> dependencies for bar, but that feels a little naughty. It
> feels about as
> >> naughty as how the previous build system just worked by
> ordering[2].
> >>
> >> Hopefully there's some better way of achieving this, any
> suggestions?
> >>
> >> /M
> >>
> >> [1] For those initiated in OCaml and its tools stack the
> former sub-part
> >> builds a custom filter for camlp4 which is then used in
> the latter sub-part.
> >> [2] omake is very similar to make and in this case the
> build of foo just
> >> happened before bar, and there was no attempt at automatic
> generation of
> >> dependencies at all.
> >
> > Well, if you need foo to be built before bar, just use
> add_dependencies(bar foo). File-level dependency scanning
> happens just before bar is built, so if I understand your
> question correctly, you should be fine now...
>
> No, I need foo to be built before bar is inspected to gather its
> dependencies. And dependencies for both foo and bar are gathered when
> calling `cmake` to generate the Makefiles. This is how my OCaml
> support works at the moment. If you have suggestions for how to move
> the dependency generation to compile time (i.e. when calling `make`)
> then I'd be very glad to hear it. Or even better, be pointed to an
> example of how to achieve that.
>
> /M
>
> --
> Magnus Therning (OpenPGP: 0xAB4DFBA4)
> magnus@therning.org Jabber: magnus@therning.org
> http://therning.org/magnus identi.ca|twitter: magthe
> _______________________________________________
> 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
More information about the CMake
mailing list