[Scons-dev] Where does scons determine the dependencies for object files?

Andrew C. Morrow andrew.c.morrow at gmail.com
Sun Mar 25 14:05:47 EDT 2018


Could you point me to where in the SCons sources that connection between
foo.o and foo.c is made, exactly? I'd like to understand how it happens.

Regarding pseudo-builders: they don't compose, unfortunately. Once
something becomes a pseudo-builder it no longer exposes the attributes that
normal builders do. So I'd prefer to achieve this by injecting
scanners/emitters into the existing builders, if possible.

On Sun, Mar 25, 2018 at 1:52 PM, Gary Oberbrunner <garyo at oberbrunner.com>
wrote:

> The builder, in this case Object(), sets up the dependency between foo.o
> and foo.c. The simplest way to do what you want is to create a
> pseudo-builder that calls Object() and also calls Depends().
>
> -- Gary
>
> On Sun, Mar 25, 2018 at 1:07 PM, Andrew C. Morrow <
> andrew.c.morrow at gmail.com> wrote:
>
>>
>> I'm fairly clear on where SCons learns of the dependencies for source
>> files: that is in the CScanner attached to the SourceFileScanner in T
>> ool/__init__.py.
>>
>> But where does SCons determine the dependencies of object files, such
>> that those dependencies are checked to see if the object file needs to be
>> rebuilt?
>>
>> More concretely, If I have libfoo.so made from foo.o made from foo.c
>> which depends on foo.h, the CScanner in SourceScanner takes care of
>> scanning for dependences in foo.c and finds foo.h. But what scans for
>> dependences of foo.o and identifies foo.c?
>>
>> I ask because I would like to sometimes inject a new source-like
>> dependency into compilations, such that foo.o will depend on not just
>> foo.c but also some other file magic, such that if magic is changed then
>> foo.o will need to be rebuilt.
>>
>> With such a mechanism, it would be possible to teach SCons that if an
>> AddressSanitizer blacklist file known to be on the compile line like
>> -fsanitize-blacklist=path/to/magic is referring to a blacklist file that
>> is more up to date than the object file, then the object file should be
>> rebuilt.
>>
>> Thanks,
>> Andrew
>>
>>
>>
>>
>> _______________________________________________
>> Scons-dev mailing list
>> Scons-dev at scons.org
>> https://pairlist2.pair.net/mailman/listinfo/scons-dev
>>
>>
>
>
> --
> Gary
>
> _______________________________________________
> Scons-dev mailing list
> Scons-dev at scons.org
> https://pairlist2.pair.net/mailman/listinfo/scons-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/scons-dev/attachments/20180325/95883037/attachment-0001.html>


More information about the Scons-dev mailing list