Boost logo

Boost-Build :

Subject: [Boost-build] glob-tree question
From: Stefan Seefeld (stefan_at_[hidden])
Date: 2015-05-21 09:37:43


I'm looking at the boost-install rule in Boost's Jamroot file.

For Boost.Python I'd like to use a modified version of that which
installs the headers itself, rather than doing it via a dependency. (I
was searching for "install-proper-headers" but couldn't find it. Any
hints ?)

So, I define

  headers = [ path.glob-tree $(SELF)/include/boost : *.hpp ] ;

but when I then add $(headers) to the "package.install" call, I get this
error message:

error: Name clash for '<p/usr/local/Boost/include>implicit.hpp'
error: Tried to build the target twice, with property sets having
error: these incompabile properties:
error: - none
error: - none
error: Please make sure to have consistent requirements for these
error: properties everywhere in your project, especially for install
error: targets.

Boost.Python contains two "implicit.hpp" headers, once in
include/boost/python/ and once in include/boost/python/converter/, and
it seems as if the installation would try to copy both files to the
installation location, ignoring their relative (subdirectory) path.
I also tried the glob-tree rule (rather than path.glob-tree), which
yields the error

  error: The patterns to 'glob-tree' may not include directory

which I don't understand, as the glob-tree rule appears to be defined to
take a 'roots' argument which is a (directory) location.

What am I missing ?

What is the suggested way to install headers, while preserving their
directory structure (relative to some common prefix) ?


I want to install

      ...ich hab' noch einen Koffer in Berlin...

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at