Boost logo

Boost :

Subject: Re: [boost] proposal - modularize Boost build system
From: paul (pfultz2_at_[hidden])
Date: 2017-06-19 18:33:47


On Mon, 2017-06-19 at 19:32 +0300, Peter Dimov via Boost wrote:
> Stefan Seefeld wrote:
> >
> >  I know about these tricks (I use something similar to set up my 
> > Boost.Python CI environment), but consider them hacks as they don't
> > really 
> > solve the fundamental requests, which are:
> >
> > * I want to be able to build a given Boost library stand-alone, with 
> > nothing but the library's repo being checked out. (In other words: 
> > prerequisite Boost components should be assumed pre-installed.)
> Why is this so important for you? The difference is just one superproject 
> shell and one tools/build. Is this a matter of principle, or are there 
> technical reasons?
>
> Anyway.
>
> Boost.Build actually supports this use case:
>
>     sudo yum install boost-jam
>     sudo yum install boost-build
>     git clone --depth=1 https://github.com/boostorg/python
>     cd python
>     touch Jamroot
>     bjam test
>
> The first error here is
>
>     IMPORT error: rule "requires" unknown in module 
> "../../config/checks/config"
>
> because we don't have Boost.Config checked out as a sibling here.

Instead of hard-coding paths to the build modules, it would be nice if it
searched for the modules instead, and then it could fallback on the hardcoded
paths when the search fails.

Ideally, instead of inventing a search algorithm to find the modules,
pkgconfig could be used here. So when boost config is installed, the .pc would
add a variable that is the location of its bjam files for consumption:

prefix=<install-location>
bjam_dir=${prefix}/bjam_files
Name: boost_config

And then you can call `pkg-config boost_config --variable=bjam_dir` and it
will give the directory of the bjam modules installed with boost_config.


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