From: David Abrahams (dave_at_[hidden])
Date: 2004-12-10 11:14:36
Vladimir Prus wrote:
> Another remark about --build-dir. We cannot use declare id of the
> project, because it can lead to clashes when you have two copies of
> the same project. Imagine:
> cd my_project bjam --build_dir=foo --with_boost=1.32 bjam
> --build_dir=foo --with_boost=cvs
> If build location for boost does not encode project location, we'll
> be building both boosts to the same place....
I thought of that. Here are several solutions that can be used together:
1. keep a record of the directory of each project that was used to build
into a given target directory. Issue a prominent warning or error if
that directory changes, with instructions about deleting the marker file.
2. Institute my target reference scheme that allows project renaming
(**), and use the ID assigned from the place where the build was
initiated to determine the target directory.
3. Encourage versioned project IDs, so boost would expose itself as
boost-1.32.0//, and *that* would be used as a target directory name.
4. Allow primary and secondary project IDs, so people who want to can
refer just to the secondary project ID (boost//)
5. As a last resort, a command-line option that allows users to direct
the build directory of any project. I'm not at all certain this is
needed if you have #2.
(**) Yes I know I need to document it. It's a bit hard to understand
where any piece of documentation fits in because I don't really
understand the BBv2 documentation structure. If you can make a
suggestion I'll get right to it.
-- Dave Abrahams Boost Consulting http://www.boost-consulting.com
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