Re: matching source and target's behavior between func and cmd actions
Bill Deegan <[email protected]>
| Newsgroups | gmane.comp.programming.tools.scons.user |
|---|---|
| Message-ID | <CAEyG4CEYnzy5ABbYU5WpQZASdKJBoq0JeASf231oLmP7MHffnw@mail.gmail.com> |
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