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-198fb6f5-22a2-4b71-a0ac-89a09bebf305-1592720023342@3c-app-mailcom-bs10>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.