Re: matching source and target's behavior between func and cmd actions
daggs <[email protected]>
| Newsgroups | gmane.comp.programming.tools.scons.user |
|---|---|
| Message-ID | <trinity-2748dbe7-a370-4200-84ce-e43dd8c27bee-1592807772100@3c-app-mailcom-bs11> |
I don't know what is the purpose of site_scons/site_init.py, I'll read about it and see if it help what I need to do. Thanks. Sent: Sunday, June 21, 2020 at 10:33 PM From: "Bill Deegan" <[email protected]> To: "daggs" <[email protected]> Cc: "SCons users mailing list" <[email protected]> Subject: Re: [Scons-users] matching source and target's behavior between func and cmd actions Re choosing from two env's to use. Just make a function and stick it in your site_scons/site_init.py Because what you're describing isn't a builder. It may be a pseudo builder, or just a python function.. but it's not builder if it needs to select from two (or more) env's to use. On Sat, Jun 20, 2020 at 11:13 PM daggs <[email protected] > wrote: Thansk, I'll look it. yes, I looked at the manpage but unfortunatelythe manpage's len doesn't correlate with my problematic attention span. this results in me missing parts of a doc sometimes. I'll try next time to put more effornt in reading the manpage. Thanks, Dagg. Sent: Sunday, June 21, 2020 at 7:44 AM From: "Bill Deegan" <[email protected] > To: "SCons users mailing list" <[email protected] > Cc: "daggs" <[email protected] > Subject: Re: [Scons-users] matching source and target's behavior between func and cmd actions Go take a look at : https://scons.org/doc/production/HTML/scons-man.html#builder_objects Search for "generator" Likely that's what you want. Did you take a read through the manpage first? There's lots of useful info there.. :) On Sat, Jun 20, 2020 at 4:05 PM Gary Granger <[email protected] > wrote: If you want to use different commands or change the string printed when the command executes, that implies you should use different Builder instances, with different Actions or cmdstr or both. It sounds like you're trying to parameterize a build task within a single python function, instead of using the mechanisms SCons already provides for parameterizing build tasks, namely Builder and Action. If you really have functionality in the task() function which you want to share across multiple Builder instances, then I would break out the shared functionality into other functions which your Builder tasks then call. But now I'm just guessing, because I doubt I really understand what you're trying to do from your example. On 6/20/20 11:52 AM, daggs wrote: Greetings Gary, that helps me in this specific case but not in the more general case as I might want to use .dirname or pass the cmd. I thought of using regex replace like this: def task(source, target, env): print(env['cmd']) new_cmd = re.sub("\$TARGET", env['cmd'], 'aaa') print('['+new_cmd+']') but for the following cmd: ${SOURCE}<=>$SOURCE<=>${SOURCES}<=>$SOURCES<=>${TARGET}<=>$TARGET<=>$SOURCES.dirname<=>${SOURCE}.dirname<=>$TARGET.abspath I get this output: [aaa] _______________________________________________ Scons-users mailing list [email protected] https://pairlist4.pair.net/mailman/listinfo/scons-users _______________________________________________ Scons-users mailing list [email protected] https://pairlist4.pair.net/mailman/listinfo/scons-users