Re: Custom environment tools evaluated before Configure contexts?
Bill Deegan <[email protected]> Tue, 7 Nov 2023 17:26:28 +0800
| Newsgroups | gmane.comp.programming.tools.scons.user |
|---|---|
| Message-ID | <CAEyG4CHcX32mnss2HXv_mWqWOMy--24Tx07oLo+BwFOSsv8GBw@mail.gmail.com> |
Ben, If having pytest-xdist installed should affect the command line, then you should check for that in the generate() function of your tool That would be the more "scons'ian" way to do it. And in fact this is what SCons does for its own tools when a different tool version/name affects what the correct command lines should be. (for example yacc, bison, byacc would want different command lines and in fact generate differently named tools. This is all decided in that tools generate() or some function it calls.) I'd avoid using configure contexts for such things. -Bill SCons Project Co-Manager On Tue, Nov 7, 2023 at 3:54 AM Mats Wichmann <[email protected]> wrote: > On 11/6/23 12:45, Mats Wichmann wrote: > > ehhh, sent too early, as there one more piece to this thought: > > > On 11/6/23 09:57, Gary Granger wrote: > >> We have custom tools that call Configure themselves, which I've > >> assumed is a reasonable thing to do. (Please let me know if not. :) > > > > It works, as long as you keep some things in mind: it's optional what to > > do with the caching of configure checks. If you run with --config=force, > > any cached checks are ignored, and as a side effect, the configure > > context works off a *copy* of the passed env; otherwise it can modify it > > in place. This is why we often see stanzas like: > > > > conf = env.Configure() > > env = conf.Finish() > > of course, that stanza doesn't work in a called function like your > tool's generate(), because you'd only be replacing the local variable > that holds the passed argument. So there you'd have to pick things out > if you wanted them, to be safe: > > conf_env = conf.Finish > env['FOO'] = conf_env.get("FOO", somedefault) > > > > _______________________________________________ > 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