Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost & Continuous Integration
From: Sohail Somani (sohail_at_[hidden])
Date: 2009-04-27 11:26:33


Robert Dailey wrote:
> Hey guys,
>
> One of the requirements for a continuous integration process is that the
> build for a specific target be quick. Something under 10 minutes is
> ideal. I find that when not using precompiled headers, boost can
> significantly impact the compilation time of the project. I've
> experienced 20 minute compiles when using boost fairly extensively
> throughout the code base.
>
> So far I only see two obvious solutions to this problem. First, use
> precompiled headers. I really don't want to do this because it causes
> issues with include dependencies and makes the code not reusable as a
> result. The second option is to beef up the machines doing the compiles,
> however this can have diminishing returns.
>
> I am sure that a lot of people in the community have had this specific
> issue with Boost's compile times, as well as in many other areas. What
> would you guys recommend? Is there any other solution beyond the obvious?

One thing I've found which helps reasonable build times for continuous
integration (besides the obvious) is hiding the use of Boost or other
header-heavy libraries behind my own abstractions and lots of forward
declarations. However, if you are using MPL, then good luck to you!

The right choice of build system also helps. SCons is notorious for
being slow on incremental builds, especially with lots of header files.
For me, the trade-off (available features) is acceptable.

-- 
Sohail Somani
http://uint32t.blogspot.com

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net