Boost logo

Boost-Build :

Subject: Re: [Boost-build] [Boost-commit] svn:boost r75765 - trunk/tools/build/v2/engine
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2011-12-01 23:48:10


On 12/01/2011 01:45 PM, Vladimir Prus wrote:
> On 01/12/11 23:34, steven_at_[hidden] wrote:
>> OBJECT * short_path_to_long_path( OBJECT * short_path )
>> {
>> <snip>
> Should we even be calling this on gristed paths?

After some thought I've concluded that bindtarget
should not call short_path_to_long_path ever.


a) Removing the call doesn't affect building Boost.
b) short_path_to_long path only works for files
   that exist. Thus, if a target is generated,
   short_path_to_long_path causes inconsistent
   behavior depending on whether the file already
   exists or not. In the worst case we can have
   a bizarre situation like:

# file.jam
var = global ;
var on target = target ;
ECHO [ on Target return $(var) ] ;
actions build
    echo string > $(<)
build target ;
UPDATE target ;

$ b2 -d0 -f file.jam
$ b2 -d0 -f file.jam

c) short_path_to_long_path only works for targets
   that are bound relative to the current working
   directory or use an absolute path. If SEARCH
   or LOCATE is set, it makes no sense.

If we're going to call short_path_to_long_path
at all, it should probably be in search, since
that's where targets are bound to physical
file system locations.

In Christ,
Steven Watanabe

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