Package SCons :: Module PathList :: Class _PathList
[hide private]
[frames] | no frames]

Class _PathList

source code

An actual PathList object.
Instance Methods [hide private]
 
__init__(self, pathlist)
Initializes a PathList object, canonicalizing the input and pre-processing it for quicker substitution later.
source code
 
__len__(self) source code
 
__getitem__(self, i) source code
 
subst_path(self, env, target, source)
Performs construction variable substitution on a pre-digested PathList for a specific target and source.
source code
Method Details [hide private]

__init__(self, pathlist)
(Constructor)

source code 

Initializes a PathList object, canonicalizing the input and pre-processing it for quicker substitution later.

The stored representation of the PathList is a list of tuples containing (type, value), where the "type" is one of the TYPE_* variables defined above. We distinguish between:

strings that contain no '$' and therefore need no delayed-evaluation string substitution (we expect that there will be many of these and that we therefore get a pretty big win from avoiding string substitution)

strings that contain '$' and therefore need substitution (the hard case is things like '${TARGET.dir}/include', which require re-evaluation for every target + source)

other objects (which may be something like an EntryProxy that needs a method called to return a Node)

Pre-identifying the type of each element in the PathList up-front and storing the type in the list of tuples is intended to reduce the amount of calculation when we actually do the substitution over and over for each target.