[Scons-dev] issue with Alias

Bill Deegan bill at baddogconsulting.com
Mon Feb 9 11:56:43 EST 2015


Tom,

Can you provide a small example SConstruct which will show the failure you
are seeing?
Also,  likely this is an email for the users group.

-Bill

On Mon, Feb 9, 2015 at 7:02 AM, Tom Tanner (BLOOMBERG/ LONDON) <
ttanner2 at bloomberg.net> wrote:

> I rearranged my build a bit and an Alias command started to fail in this
> code:
>
> Environment.py
>
> 1888 # No action, but there are sources. Re-call all the target
> 1889 # builders to add the sources to each target.
> 1890 result
> <http://www.scons.org/doc/production/HTML/scons-api/SCons.Environment-pysrc.html#>
> = []
> 1891 for t in tlist:
> 1892 bld = t.get_builder
> <http://www.scons.org/doc/production/HTML/scons-api/SCons.Environment-pysrc.html#>
> (AliasBuilder
> <http://www.scons.org/doc/production/HTML/scons-api/SCons.Environment-pysrc.html#>)
>
> 1893 result
> <http://www.scons.org/doc/production/HTML/scons-api/SCons.Environment-pysrc.html#>
> .extend
> <http://www.scons.org/doc/production/HTML/scons-api/SCons.Environment-pysrc.html#>(bld(self,
> t, source))
> 1894 return result
> <http://www.scons.org/doc/production/HTML/scons-api/SCons.Environment-pysrc.html#>
>
> Digging into it, it appears it is caused by calling this:
> Node.py
> 530 def get_builder
> <http://www.scons.org/doc/production/HTML/scons-api/SCons.Node.Node-class.html#get_builder>(self,
> default_builder=None):
> 531 """Return the set builder, or a specified default value"""
> 532 try:
> 533 return self.builder
> 534 except AttributeError:
> 535 return default_builder
>
> when self.builder is None.
>
> Moreoever, it appears that the Alias code half expectes get_builder to
> return None, as a little later on it does this:
> 1909 result
> <http://www.scons.org/doc/production/HTML/scons-api/SCons.Environment-pysrc.html#>
> = []
> 1910 for t in tlist:
> 1911 ... several lines of comment ...
> 1915 b = t.get_builder
> <http://www.scons.org/doc/production/HTML/scons-api/SCons.Environment-pysrc.html#>()
>
> 1916 if b is None or b is AliasBuilder
> <http://www.scons.org/doc/production/HTML/scons-api/SCons.Environment-pysrc.html#>:
>
> 1917 b = bld
> 1918 else:
> 1919 nkw['action'] = b.action + action
> 1920 b = SCons
> <http://www.scons.org/doc/production/HTML/scons-api/SCons.Environment-pysrc.html#>
> .Builder
> <http://www.scons.org/doc/production/HTML/scons-api/SCons.Environment-pysrc.html#>
> .Builder
> <http://www.scons.org/doc/production/HTML/scons-api/SCons.Environment-pysrc.html#>(**nkw)
>
>
> I'm not sure whether I should
> 1) Change alias to test for bld being None and set it to AliasBuilder
> (plumped for at the moment as a fix is needed for this)
> 2) change Node.py to return the default builder if its own builder is None
>
> or (3) find out why the builder is being set to None, but it took me long
> enough to fnd that was what was happening anyway
>
>
>
> _______________________________________________
> Scons-dev mailing list
> Scons-dev at scons.org
> https://pairlist2.pair.net/mailman/listinfo/scons-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/scons-dev/attachments/20150209/cd1b6ebd/attachment-0001.html>


More information about the Scons-dev mailing list