Boost logo

Boost-Build :

From: Jürgen Hunold (hunold_at_[hidden])
Date: 2004-06-24 03:41:28


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Volodya !

On Wednesday 23 June 2004 15:39, Vladimir Prus wrote:
> Hi Jürgen,
>
> > Fixed this in new project (attached). It now includes the missing
> > .o and .lib files from extern library.
> >
> > And now get the correct (!) error message:
>
> And I'm able to correctly diagnose the problem. It seems like we've
> fixed all the simple errors in V2 ;-) -- this one is a combination of
> three things:

Cool ;-)

> 1. You have <library>......something.o in top-level requirements. So
> all target, *even 'stage'*, gets "something.o" added to the list of
> sources. That's why the stage rules stages the object files.

mmh.

> 2. The rule which creates virtual targets from files has this
> comment: # FIXME: more correct way would be to compute path to the
> file, based on name and source location
> # for the project, and use that path to determine if the target was
> already created.
>
> In other words, it though that something.o referered from two
> different project are not related. Cool, isn't it?

Yes, it is. ;-)

> 3. Third problem, which is apparent only after I fix the second, is
> that the rule which determines, for each new virtual target, if
> there's equivalent one already, looked at project, too. So, two
> virtual targets created by two different 'stage' rule which
> corresponded to copied versions of 'something.o' were considered
> different. Luckily, we had this "duplicate targets checks" as the
> last defence, which fired an error -- otherwise, something.o would be
> copied twice, or maybe 10 times in a row.

> I think I've fixed the second and the third problem with the attached
> patch. It's very dirty and there are no regression tests yet, so I
> can't commit it today. However, if you could test with it applied,
> that would be great.

Done this. Works fine now.

> As for the first issue, I'm not 100% sure. I kinda expected that
> stage rule would be located in top-level, as opposed to in each
> Jamfile, so I can't suggest a solution off-hand.

Don't hurry. I'm far from using Boost.Build as our main build system.

To be frank, I never thought about putting the stage in top-level
Jamfile. Seems like I should rework my Jamfiles again ;-)

Thanks for the fix.

Yours,

Jürgen
- --
* Dipl.-Math. Jürgen Hunold ! Institut für Verkehrswesen, Eisenbahnbau
* voice: ++49 511 762-2529 ! und -betrieb, Universität Hannover
* fax : ++49 511 762-3001 ! Appelstrasse 9a, D-30167 Hannover
* hunold_at_[hidden] ! www.ive.uni-hannover.de
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFA2pO7ljbJ/LLrxrYRAloHAKCui/d1RxkgaYiQHUmMNaLichBfdwCeIQEp
992+0dnfPepBm+qAAuX0Py4=
=txpH
-----END PGP SIGNATURE-----

 


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