[cfe-dev] Using CMake/Ninja on buildbots
Arnaud de Grandmaison
arnaud.adegm at gmail.com
Wed Feb 6 14:13:26 PST 2013
On Wednesday 06 February 2013 21:41:06 Renato Golin wrote:
A discussion was being carried on llvmcommits about the extra time for
cleaning and re-building objects that didn't need to be built on buildbots.
Since they just update the repository, builds could be a lot faster if we let
the objects in place. Even faster if we used Ninja with CMake. Is there a
crucial reason why we're still using autoconf for all builds?
Some of us acknowledge that sometimes the build gets stuck because of a CMake
file problem or change that the build can't get around automatically. It's
probably because of those issues that a "make clean" is done on almost all
The point is that, for the exception, we're paying it in full, every single
build. Some of us proposed, then, that we could not have the clean phase on
buildbots in the first place, and deal with the exceptions when they happen.
Does that sound terrible to anyone?
I also think we could create a "clean" button on the bot web interface, so
that anyone can just clean the build if the bot gets stuck. We also can
perform a routine make clean, say, every Sunday, so that we're sure we're not
wrongly passing tests that should be failing.
ninja does not bring any advantage with a "clean" build, but once you tried it
with a "warm" build, you can not do any longer without it :)
I think there are different aspects there :
- the ninja vs make aspect is more a matter of sparing time and energy, as
they should give the same results
- autoconf vs cmake : I do not know how many bots are using cmake today,
probably a few at least for windows, but this would definitely help to
maintain consistency between cmake and autoconf, if we take into consideration
the point below
- build options coverage : for example with or without shared libraries. I
have not checked recently, but cmake+shared_libs used to fail in "make (or
ninja) check-llvm" for bugpoint.
On my side, I have been using both options (clean build or warm build). The
problem is you do not catch the same rough edges / corner cases : stale file
pick up or a problem with a automatically generated files comes to me as
examples. The clean build is simpler from a lazy user point of view. You do
not even need to clean things, the bot will do it for you :)
I think we just need to increase coverage. Everything you can do to build
(even slightly) differently than other bots is good to have.
My 2 cents,
Arnaud de Grandmaison
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev