Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-06-24 04:15:28


On Thursday 23 June 2005 11:54, Malcolm Cifuentes wrote:

> use case: using bb in a continuous integration model.
>
> Continuous integration means every one on a project uses the same
> include/library repository (located conveniently on one or more servers:)
> This means a user releases a library/header and source to the repository
> when they decide it is ready and all other users receive the changes upon
> next compile/link. The user only builds what they are working on and not
> what they depend on. I've used this system implemented in make and it
> works well.
> The down side, is all dependancy management has been done by
> mischievious means and it is error prone, hence my desire to try and use
> bb to solve the problem.

I think that there just two ways to make it work, in general:

1. Shared source. You have all your modules lying somewhere, projects that
each developers work on refer to that shared location via Boost.Build target
references. When you ready to release a module, you copy it to the shared
location. (Or configure your version system to update shared location
whenever a checking is made). When somebody else builds a project that
depends on the modified module, that module is rebuilt in the shared
location.

Pros: simple to setup
Cons: need a way to set right permissions when building. If two developers
start building at the same time, build processes is likely to fail.

(This is what I have at work with Boost.Build. The permission problem is not
solved, so when I update boost and forget to rebuild it, nobody can build
anything).

2. Shared binaries

A shared location holds a number of prebuilt variants.

Pros: don't need to modify Boost.Build to set proper permissions. You only
need some locking for updating of prebuilt variants.
Cons: Somebody will always forget to update prebuilt variants. This can be
solved by auto-updating prebuilt variants when checking is made)

(This is what I have a work with legacy build system. A typical situation is
"I've fixed that bug" -- "Did you update installation?" -- "Ah... no".)

I don't know which approach is best ;-)

- Volodya

-- 
Vladimir Prus
http://vladimir_prus.blogspot.com
Boost.Build V2: http://boost.org/boost-build2
 

Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk