$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] CMake - one more time
From: Peter Dimov (lists_at_[hidden])
Date: 2016-04-24 12:16:31
Paul Fultz II wrote:
> What would be nice if BPM was extensible to support libraries in the
> incubator. That is the user had some form of channel or PPA that could be
> added, which would install these unofficial libraries as well.
I could in principle borrow a page from your book and make it treat
bpm install pdimov:mp11
as referring to github.com/pdimov/mp11, placing it into libs/mp11, but the
problem is then versioning. When everything is under the boostorg umbrella,
the nice thing about the superproject is that it gives me a global version
across all submodules. So when you install filesystem 1.60.0, it knows to
get system 1.60.0 as well.
(pdimov/mp11 doesn't work because we already have numeric/odeint.)
Actually, now that I think about it, I'm not sure downloading the Github
tarball of boostorg/boost would give me the information I need to download
the correct revision of the submodules... and I rather not integrate git
into bpm. :-)
> > But now I think that this is unnecessary; I plan to rework it to
> > download the packages directly from Github, and to scan the dependencies
> > in place, so as to eliminate the need for a bpm-specific packaging.
>
> Wouldnât it need to download all of boost to do that? Otherwise, how does
> it know which header belongs to which library?
My current plan is to autodetect the library from boost/{library}/... or
boost/{library}.hpp and rely on a list with the headers that do not fit this
form.
I just added --list-exceptions to boostdep for this purpose; the main
offenders are boost/archive, which belongs to serialization,
boost/graph/distributed and boost/graph/parallel, which are in
graph_parallel, and boost/detail/winapi which is the winapi module.
> > This would be very useful in .travis.yml, except that you'd need to
> > somehow bootstrap bpm first.
>
> And b2 as well, correct?
I could integrate the b2 engine into bpm. The idea being that bpm.exe should
be all one needs to install and build everything else.
Although I don't have the time at present to flesh all this out, so it could
be that I've overlooked something.