[Scons-users] Modifying the provided environment in an emitter?

William Blevins wblevins001 at gmail.com
Fri Apr 21 18:45:41 EDT 2017


Using SCons.Builder.BuilderBase as a reference for my answer, emitters and
environment are bound at the Builder level.

On Fri, Apr 21, 2017 at 5:42 PM, Andrew C. Morrow <andrew.c.morrow at gmail.com
> wrote:

>
> Thanks for the answer. I think cloning it would defeat my aim though. I
> want the modified environment to apply to the target. If I clone it, I
> don't think it possibly could. Or does each target have en env I can rebind
> to the cloned and modified environment?
>
> On Fri, Apr 21, 2017 at 5:34 PM, William Blevins <wblevins001 at gmail.com>
> wrote:
>
>> I would only do so on a clone of the provided environment in order to not
>> modify the environment which may be used elsewhere.
>>
>> On Apr 21, 2017 5:29 PM, "Andrew C. Morrow" <andrew.c.morrow at gmail.com>
>> wrote:
>>
>>>
>>> Hi all -
>>>
>>> Is it legit to modify the passed in env in an emitter?
>>>
>>>     def add_lib_foo_emitter(target, source, env):
>>>         libs = env.get('LIBS', [])
>>>         libs.append('foo')
>>>         env['LIBS'] = libs
>>>         return (target, source)
>>>
>>>     def add_emitter(builder):
>>>         base_emitter = builder.emitter
>>>         new_emitter = SCons.Builder.ListEmitter([add_lib_foo_emitter,
>>> base_emitter])
>>>         builder.emitter = new_emitter
>>>
>>>     target_builders = ['Program', 'SharedLibrary', 'LoadableModule',
>>> 'StaticLibrary']
>>>     for builder in target_builders:
>>>         add_emitter(env['BUILDERS'][builder])
>>>
>>> I've found myself wanting to do this with increasing frequency, but am
>>> unclear on whether this is acceptable. It appears to work, but the
>>> documentation doesn't seem to offer any clear guidance that I've found on
>>> whether it is guaranteed to work. If so (which would be great!), am I
>>> guaranteed that the modification of env is scoped only to the passed in
>>> targets?
>>>
>>> Thanks,
>>> Andrew
>>>
>>>
>>> _______________________________________________
>>> Scons-users mailing list
>>> Scons-users at scons.org
>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>
>>>
>> _______________________________________________
>> Scons-users mailing list
>> Scons-users at scons.org
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>
>>
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20170421/4ac9520a/attachment.html>


More information about the Scons-users mailing list