Boost logo

Boost :

Subject: Re: [boost] Boost CMake support - Request for Comment
From: Robert Ramey (ramey_at_[hidden])
Date: 2018-10-12 17:06:15


On 10/11/18 9:45 PM, Rene Rivera via Boost wrote:

> Second, I think the scope and goals of supporting CMake, even though well
> intentioned, fall short of what Boost needs to do to resolve the varied
> afflictions that plague us.

Well, the scope, goals and requirements of CMake as it relates to Boost
aren't decided yet. That is the current discussion.

I don't believe that CMake will address all the afflictions that plague
us. I believe it will make boost in someway better. That is my aspiration.

> In what follows when I refer to: "users" I mean those programmers that
> obtain Boost and use the libraries in their projects, and "authors" as the
> programmers that develop and support the Boost Libraries and tools.
>
> With that in mind, what I would like us to do is what I've mentioned many
> times in the past.. Move towards a truly modular Boost distribution and
> development that: a) supports users no matter what environment they choose
> to use Boost Libraries in, b) supports developers to flexibly develop and
> test their libraries, c) allows Boost to grow in a way that doesn't cripple
> development resources.

This is my goal as well. I believe that a CMake support of boost will
take use closer to that goal.

> I think that without a "fully normalized modular Boost" a CMake, or any
> other build system, effort is a waste of time.

Of course we differ. I don't believe it a grand (intelligent?) design.
I believe in evolution. It is my intention that CMake support of boost
will bring us close to the goal of a modular boost - which I've referred
to in the past as Boost 2.0.

> As it doesn't address the long term viability of Boost.

Not explicitly. But I believe it will contribute to the long term
visibility of Boost.

> And hence if we are going to spend considerable effort it should be towards modularity.

By keeping the scope relatively narrow, I hope to be able to make actual
progress. This is a key feature of my proposal and strategy. Other more
ambitious and grandiose initiatives have failed in the past because they
were too ambitious and grandiose. This makes it impossible to reach
consensus which is the bedrock of Boost. We've tried the marxist
approach to move to Boost 2.0 and it's failed us. Now we're going to
try capitalism - which accepts and embraces failure is an inevitable
cost of moving forward.

> In addition to the standard requirements that Robert
> mentioned here's what I think is required for a modular Boost:
>
> 1) Fully normalized library file structure that can be introspected.

This would be nice - but I don't think it's essential to making a CMake
Boost integration.

> 2) Clear inter-library, and non-cyclic, dependency arrangement and
> information.

LOL - the hole grail! It's never going to happen. The advocates of
this view have totally misunderstood the meaning and role of dependency
in this context. Like the knights of old, they will continue to pursue
this holy grail - always getting closer - but never capturing the prize.
I've recently described my views on this in detail (for the Nth time!)
on slack in a thread with Peter Dimov. And for the Nth time I've failed
to convince anyone! LOL If he's sir galahad, maybe I'm don quijote -
both pure of heart but totally misguided in different ways. (I'm just
being entertaining here - I know I'm right and have proven it many times.)

> 3) Abandon the super-project structure as a development and distribution
> vehicle.

I agree with this. It's my current intention that the "scope and
requirements" include the statement like:

"Any CMake support of Boost should not presume any super project or
similar directory structure outside of any particular library"

> To telegraph my intent for when it's time for proposals.. I think that for
> #1 above I think we should be forward looking and follow the Pitchfork
> structure proposal <http://bit.ly/2Edy4pC>.

Interesting - but as I said before - out of scope.

> As for build system.. I think I only have one additional requirement given
> the above:
>
> 1) We should support generating multiple build system files for
> distribution and development from the introspection of the modular Boost
> libraries to support the varied user and developer needs.

LOL - that could mean anything - maybe you should run for office! I
think I get the idea but would phrase it differently:

"A CMake integration should not conflict with the current build system
or other boost tools"

Robert Ramey


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk