On 16. Feb, 2009, at 14:42, Micha Renner wrote:
Hi Michael
This works for me (Mac OS X 10.5.6, GNU Make 3.81). What version of
Make are you using?
The same as you.
Reasonably recent versions of GNU Make should be
able to do exactly that, but AFAIK, nmake and MSYS Make have serious
trouble getting parallel builds right (or do not have the feature at
all).
You are right. Especially , nmake might be a death end.
Whether parallel builds are available is not so much a thing that
CMake handles, but the native build system (in your case some variant
of Make).
I'm pretty sure that this a is CMake-problem. E.g the autotools can
do a
parallel build of tiff.
The problem with CMake arises only if the library-build is long and
the
parallel depending build short. In this case it took 50s to build the
library and 8s to build the depending program.
50s is not sooo bad, here I have targets which take dozens of minutes...
If the subdirectories are independent, then I have no difficulties to
make parallel builds.
Aah yes, I noticed similar effects. Strange thing is that the
Makefiles generated by CMake support building a single target in
parallel. But once the "scheduler" decided to do the easier thing, and
build two different targets in parallel, and one finishes much earlier
than the other, it won't ever "fork" the build process of the other
target, but instead start to build another target non-parallel. This
is not so bad if you have many targets of about the same size, as I do
(in the order of 100), but if you have only a very few targets with
one of them being much more expensive than all the others, it breaks
down.
The other point is, there is no way to tell CMake that Sub1 depends on
Sub2 and Sub2 depends on Sub3.
You can't define dependencies of directories, but of targets. That
should do the trick, right? And actually makes more sense...
So from the silence of the maintainers I conclude that I'm right,
alas.
(Of course not sure, so I asked.)
I'd wait over the night, most of them are across the Atlantic ;-)
Nevertheless, thanks for responding.
Michael
Michael
_______________________________________________
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