[Cmake] infinite recursion during Dart build.
Ian Scott
ian.m.scott at stud.man.ac.uk
Tue, 6 Jan 2004 10:46:12 -0000
Hi,
One of the users on our private repository created a sub-project with two
interdependent libraries.
in wibble/CMakeLists.txt
...
SUBDIRS(foo bar)
...
in wibble/foo/CMakeLists.txt
...
ADD_LIBRARY(foo ${foo_sources})
TARGET_LINK_LIBRARIES(foo bar some other libraries)
...
in wibble/bar/CMakeLists.txt
...
ADD_LIBRARY(bar ${bar_sources})
TARGET_LINK_LIBRARIES(bar foo some other libraries)
...
When Dart goes to build the project with it descends into an unterminated
recursion (>1000 gmake processes running at one time, before the Linux VM
starts randomly killing single processes.) I presume that this is because
Dart uses gmake -k (for keep going.)
This problem caused all manner of hassles for our dashboard machine, which
(does some Dart builds as well as runs the Dart server.)
My questions are:
For CMake: Should cmake detect this potential recursion and produce
makefiles which can't carry on recursing?
For Dart: Should Dart really be using gmake -k, and/or detect runaway builds
and kill them?
I think that automated CMake/Dart builds should be robust enough to cope
with such errors without my intervention.
Ian.