[Scons-users] Is it possible to use Copy Action Functions outside of SConscript?

Pierre-Luc Boily pierreluc.boily at gmail.com
Fri Mar 16 11:16:50 EDT 2018


But then I have : NameError: global name 'Copy' is not defined:

And I can`t use env.Copy, because it refers to a deprecated function.

I really think it is related with the fact that  def
compile_idl_files(env): function is outside of my SConscript.

On Fri, Mar 16, 2018 at 11:13 AM, Bill Deegan <bill at baddogconsulting.com>
wrote:

> get rid of env.Execute().. you're building a list of actions, just use
> Copy.
>
> Execute means do it right now.
>
>
> On Fri, Mar 16, 2018 at 10:49 AM, Pierre-Luc Boily <
> pierreluc.boily at gmail.com> wrote:
>
>> No totally a builder, but like that :
>>
>> #In my SConscript :
>> idlGeneratedHeaders = env.compile_idl_files()
>>
>> #In my util file (I call those function pseudo-builder, they are not
>> really builder, but they actually call a builder.  In this case,
>> env.Command)
>> def compile_idl_files(env):
>>     """
>>     Compile all the IDL with DDS idlpp tool.
>>     returns the list of header files generated.
>>     """
>>     idlFiles = env.Glob('*.idl', exclude=['*Dcps.idl'])
>>     idlGeneratedHeaders = []
>>     variantDirOutput = str(env.Dir('.').path) #Where to generate .h &
>> .cpp from IDL
>>     for idlFile in idlFiles:
>>         tgtCpp, tgtH, ccpp = create_target_for_idl(env, idlFile)
>>         idlGeneratedHeaders += tgtH + ccpp
>>         env.Command(target = tgtCpp + tgtH + ccpp,
>>                     source = idlFile,
>>                     action = [env.Execute(Copy(os.path.join(env['LOCALROOT'],
>> variantDirOutput, idlFile), idlFile)),
>>                               'idlpp -S -l cpp -d ' + variantDirOutput +
>> ' $SOURCE'])
>>
>>     return idlGeneratedHeaders
>>
>> On Fri, Mar 16, 2018 at 10:30 AM, Bill Deegan <bill at baddogconsulting.com>
>> wrote:
>>
>>> So you want to use the Copy() action inside a builder?
>>>
>>> -Bill
>>>
>>> On Fri, Mar 16, 2018 at 9:34 AM, Pierre-Luc Boily <
>>> pierreluc.boily at gmail.com> wrote:
>>>
>>>> My SConscript contains the following code :
>>>>
>>>> Execute(Copy(os.path.join(env['LOCALROOT'], str(env.Dir('.').path),
>>>> 'MaxSim.idl'), 'MaxSim.idl'))
>>>>
>>>> In order to make my SConscript cleaner, I wanted to move this line into
>>>> a
>>>> pseudo-builder, in an utility file.
>>>>
>>>> Then, when I am calling this line :
>>>> Execute(Copy(os.path.join(env['LOCALROOT'], variantDirOutput,
>>>> str(idlFile)),
>>>> str(idlFile)))
>>>>
>>>> from my utility function, I have error:
>>>> NameError: global name 'Execute' is not defined
>>>>
>>>> I understood that because I am outside of the SConscript context,
>>>> Execute is
>>>> not recognized anymore.  I then added my env, like that :
>>>> env.Execute(Copy(os.path.join(env['LOCALROOT'], variantDirOutput,
>>>> str(idlFile)), str(idlFile)))
>>>>
>>>> Now, Execute is recognized, but Copy is not.  If I try to add env to the
>>>> Copy function (env.Copy()), I now have this error : warning: The
>>>> env.Copy()
>>>> method is deprecated;
>>>>
>>>> I understand the env.Copy() is depracated, but is it possible to use
>>>> Copy
>>>> action outside the SConscript the same way I did for env.Execute?
>>>>
>>>> Thx
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
>>>> _______________________________________________
>>>> 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
>>
>>
>
> _______________________________________________
> 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/20180316/36ae541e/attachment.html>


More information about the Scons-users mailing list