|
Boost-Build : |
From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-12-10 11:29:46
On Friday 10 December 2004 19:14, David Abrahams wrote:
> 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.
Ouch. The implementation might get contrived.
>
> 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.
Well, we've agreed to use this scheme anyway.
> 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.
But that won't prevent innocent user from shooting itself.
> 4. Allow primary and secondary project IDs, so people who want to can
> refer just to the secondary project ID (boost//)
Hmm.. I'd rather not compicate projects ID further.
> 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.
Neither do I. I think that either #2 or my global dir proposal can solve this.
> (**) 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.
I think it would fit either in
http://boost.org/boost-build2/doc/html/bbv2/reference/definitions.html#bbv2.reference.ids
(where target-id syntax is defined)
or
http://boost.org/boost-build2/doc/html/bbv2/advanced/jamfiles.html#bbv2.advanced.projects
(where use-project rule is mentioned).
In either way, content is much more important (at least for me), then the
exact place in docs.
- Volodya
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