Boost logo

Boost-Build :

From: Roland Schwarz (roland.schwarz_at_[hidden])
Date: 2008-04-06 08:59:09

Boost.Build is a great system to write platform independent
build rules.

Once you have read through the manuals and "bjam --help" one
starts to write her own modules. Having read the advice
from the user guide: "If the extensions will be used on many
projects, users will thank you for a finishing touch."
I added a init rule, but got stuck about where to put this
now. The manual suggest to put it into the project dir.
This works fine, but fails if you want to use it for use
as a site-wide repository.

However it is possible to put the following into

boost-extension-dirs = /path/to/my/extensions ;

        : [ modules.peek : BOOST_BUILD_PATH ] $(boost-extension-dirs) ;

While this surely will work, it is non-obvious (at least for
me it was not) and looks a little hackish. So I propose

1) Addition of a add-extension-paths rule to build-system-jam:

   rule add-extension-path ( dirs * )
            : BOOST_BUILD_PATH
            : [ modules.peek : BOOST_BUILD_PATH ]

2) Addition of a 'contrib' subdirectory

My second proposal is about modules that users have written, but
the core maintainers have not had the time to approve for general
use. Following the practice of other projects I propose to introduce
a 'contrib' (or similar name) subdirectory within the boost-build
tree and change the default paths to search also in this directory.

Once the boost-build maintainers decide that the contributed module
is mature enough they simply could move it to a more appropriate

The documentation should state the fact that modules in contrib
are unmoderated and could be of different quality than the main
build system.

I am proposing this in the hope that more modules from the
user community can be added to boost-build.

Did I already have said Boost.Build is a great system? ;-)

Regards speedsnail

  _  _  | Roland Schwarz
 |_)(_  | aka. speedsnail
 | \__) | mailto:roland.schwarz_at_[hidden]

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