[CMake] Trouble with parallel builds for targets created by add_executable, target_link_libraries, and add_library

Alan W. Irwin irwin at beluga.phys.uvic.ca
Tue Sep 29 18:44:28 EDT 2009


On 2009-09-29 16:36-0400 Bill Hoffman wrote:

> make -j N is only supported with the all target.

That is a major disappointment for me since I have already implemented a
nice target-based (as opposed to ctest based) testing capability for PLplot
with a lot of different tests with individual dependencies on various PLplot
targets (like building test executables for the many different computer
languages we support.) Note, parallel build issues come and go depending
very much on timing, the number of cpus you have, and the collection of
targets being built in parallel.  Therefore, I didn't even realize there was
a parallel-build problem with my test network until the last few days.

How difficult would it be to implement parallel build support for more than
just the "all" target? Note, if there is some limitation that makes it
impractical or inefficient to implement this current "all" target capability
for every target, you could instead implement this capability just for the
targets where this capability is wanted (as designated, say, by a
PARALLEL_BUILD=ON target property).

I have heard that ctest will soon (2.8.0?) get a parallel test capability.
Does it also have the same limitation (must run "make all" first) or can you
have individual ctests dependent on individual targets that can be built in
parallel?

I just had a look at one of my favorite whitebox sites, and it looks like
2-cpu PC's are common for entry-level PC's, and from what I have read, the
PC manufacturers plan to continue to increase the number of cpu's in their
PC's rather than the speed of individual cpu's.

Given that computer industry trend, I believe the sooner that CMake and
Ctest can remove all limitations on parallel builds and tests, the better.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________


More information about the CMake mailing list