Boost logo

Boost :

Subject: Re: [boost] Installing CMake configuration files
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2018-10-16 04:53:34


AMDG

On 10/15/2018 09:20 PM, Peter Dimov via Boost wrote:
> Louis Dionne wrote:
>
>> Would it be possible to have one Boost::XYZ library for each
>> header-only library XYZ?
>
> It's possible in principle; my first iteration did have targets for all
> libraries. I'd however prefer to get a release out using this scheme
> first, to see how it fares in the field.
>
> There are several possible approaches we could adopt if we want targets
> for all libraries, and the one I like is to go full modular and add
> build/Jamfiles to header-only libraries, with stage and install targets
> that link/copy the headers. So that you could `b2 --prefix=~/.local
> install-hana` from top level and get, in ~/.local/include, Hana's
> headers and the headers of its dependencies, and in ~/.local/lib/cmake,
> the config files of same.
>

+1

> For this to work, we need to change our releases to no longer delete
> libs/$lib/include, as I mentioned.
>

It's not strictly necessary, as long as there's
some way to enumerate the headers belonging to
a specific library. (Obviously doing a glob-tree
in libs/$lib/include is the most convenient way
to do so.)

> Also, we need to fix our circular dependencies. This may take a while. :-)
>

It might be easier in the short term to make
Boost.Build handle circular dependencies (in
some cases). I already have a pretty good idea
of how to do it, as I implemented support for
circular #includes in the jam scanner.

The required semantics in this case are pretty simple:
If any library in the cycle is installed/staged, then
all of them are.

In Christ,
Steven Watanabe


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