[Scons-users] Is it possible to use Copy Action Functions outside of SConscript?
Pierre-Luc Boily
pierreluc.boily at gmail.com
Fri Mar 16 10:49:03 EDT 2018
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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20180316/46c956e7/attachment.html>
More information about the Scons-users
mailing list