[Scons-users] Fwd: Dependency tree for test framework

Bill Deegan bill at baddogconsulting.com
Mon Mar 31 15:25:44 EDT 2025


wow that's about the most complicated way to share your dependencies I've
seen so far..

I see an arc from aOld\b.out.tmp -> aOld\b.out which goes around
PreProcess.py (same for aNew\b.out.tmp).
How does b.out "use" the .tmp file directly?
Or is that a mistake/error in your representation?

On Sat, Mar 29, 2025 at 1:02 PM Keith Prussing <kprussing74 at gmail.com>
wrote:

> I’ll throw in that the ToolsForFools (link below) helped me understand
> Builders in the context of Second.
>
> Keith Prussing
>
> [image: 60082f80-4d90-11ea-8bc5-15d065acb8d1.png]
>
> ToolsForFools <https://github.com/SCons/scons/wiki/ToolsForFools>
> github.com <https://github.com/SCons/scons/wiki/ToolsForFools>
> <https://github.com/SCons/scons/wiki/ToolsForFools>
>
>
> On Mar 29, 2025, at 9:54 AM, Mats Wichmann <mats at wichmann.us> wrote:
>
> On 3/28/25 23:30, Oliver Koch via Scons-users wrote:
>
> Dear Scons developers and users,
>
> I would like to set up a rather complex test framework to compare the
>
> changes between different versions (old vs. new) of an executable.
>
> The workflow also includes different steps (tools) to process resp.
>
> compare the output files.
>
> See the attached HTML file (resp. the according Markdown file).
>
> Any green box should be regarded as an independent component the can be
>
> changed by me. Any white box is a dependent file that is generated from
>
> the independents.
>
> The task is to create a dependency tree in SCons that re-generates the
>
> (necessary) final output files (b.out.diff resp.b.log.diff), if any of
>
> the dependent green boxes have been changed.
>
> I am struggeling with your documentation to conclude, how a SCons script
>
> should look like for the above purpose, since I am not using any
>
> classical compiler or linker in this workflow.
>
> Could you indicate me, how the shown dependency tree must be implemented
>
> with a SCons script?
>
> (And maybe explain a little bit why?)
>
> The way you declare a dependency with an associated action is to call a
> "builder": B depends on A, and if A is computed to be out of date, apply
> Action to create/recreate B.
>
> SCons has a bunch of pre-made builders to anticipate things people are
> likely to do, but in your case, none are going to apply, so you'll need to
> write you own builders, or use the builder-like Command function if you can.
>
> Command is much simpler because it works as a one-shot, while true
> builders require quite a bit more plumbing setup. Rather than go on about
> that, there are two chapters in the User Guide you can scan, then come back
> with more questions:
>
> Writing Your Own Builders:
> https://scons.org/doc/production/HTML/scons-user.html#chap-builders-writing
>
> Not Writing Builders:
>
> https://scons.org/doc/production/HTML/scons-user.html#chap-builders-commands
>
>
> _______________________________________________
> 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/20250331/db76fa69/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 60082f80-4d90-11ea-8bc5-15d065acb8d1.png
Type: image/png
Size: 52776 bytes
Desc: not available
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20250331/db76fa69/attachment-0001.png>


More information about the Scons-users mailing list