Boost logo

Boost :

Subject: Re: [boost] [Modularization] A new approach to header modularization
From: Stewart, Robert (Robert.Stewart_at_[hidden])
Date: 2009-05-29 08:52:09

Emil Dotchevski wrote:
On Friday, May 29, 2009 8:32 AM
> On Fri, May 29, 2009 at 4:54 AM, Stewart, Robert
> <Robert.Stewart_at_[hidden]> wrote:
> > Emil Dotchevski wrote
> > On Friday, May 29, 2009 3:37 AM
> >>
> >> One way to make building libs as painless as not having to
> >> build them is to use Boost Build itself to build your
> >> programs. It makes the presence of cpps/libs an
> >> implementation detail. In my own code repository, I have
> >> many libs and many cpp files and many header-only libs and
> >> I don't keep track which is which -- Boost Build figures it
> >> out for me.
> >
> > That's simply not going to happen for most Boost users, so
> > it's a non-starter.
> What is not going to happen for most Boost users? To use a
> good build system?

Folks are not going to change build systems to accommodate Boost. If making building Boost easier was one of many reasons to switch to using Boost.Build, then it may be enough to justify the switch. However, there are usually a great many reasons to select a build system and making Boost easier to build is not likely one of them.

> And the solution to the "my build system sucks, I don't want to build
> the libraries I use" problem is to put everything in headers?

You have misstated the problem. It isn't, "my build system sucks," but, "Boost uses an unusual build approach that doesn't easily fit into other build systems and approaches." The solution to the problem you stated might well be use Boost.Build, but the solution to the other is to make building Boost less unusual and easier to fit into other systems. (Which, I think, is increasingly the case.)

Boost does not play well in our corporate build system, so we have to finagle a public, shared build to which we all link (for the non-header-only libraries). Getting libraries built in the right place with a known name and incorporating their naming convention into our build system was non-trivial, but works, though things change with each release. This precludes individual teams and projects from using independent versions of Boost; the build system owner must build what is needed and share it. The good news is we make it work, and building more non-header libraries is hardly more difficult than building those we now do.

Rob Stewart robert.stewart_at_[hidden]
Software Engineer, Core Software using std::disclaimer;
Susquehanna International Group, LLP

IMPORTANT: The information contained in this email and/or its attachments is confidential. If you are not the intended recipient, please notify the sender immediately by reply and immediately delete this message and all its attachments. Any review, use, reproduction, disclosure or dissemination of this message or any attachment by an unintended recipient is strictly prohibited. Neither this message nor any attachment is intended as or should be construed as an offer, solicitation or recommendation to buy or sell any security or other financial instrument. Neither the sender, his or her employer nor any of their respective affiliates makes any warranties as to the completeness or accuracy of any of the information contained herein or that this message or any of its attachments is free of viruses.

Boost list run by bdawes at, gregod at, cpdaniel at, john at