[Scons-users] Finding targets which depend on a source file

Abhishek Rai abhishekrai at gmail.com
Wed Nov 18 18:16:09 EST 2015

Thanks for the prompt response William.

On Wed, Nov 18, 2015 at 3:06 PM, William Blevins <wblevins001 at gmail.com>
> SCons already only builds targets that are not up-to-date, so what is the
point of this script per say? I assume that you are always starting from a
fresh repository clone of some kind?

Yes.  In our git repository, we pull code from the origin several times
every day.  After each pull, as far as scons goes, several build targets
become out of date, causing it to rebuild them when we try to build all
targets.  In our environment, it's safe to assume that code pulled from
origin passes all builds and tests, therefore rebuilding locally is an

> The SCons paradigm generally maps Targets to Dependencies (Sources), so
you would need to work backwards.  You might be able to get this
information from "scons --dry-run --tree=<option>" with a clever parser,
but this will require that SCons scan all the files even though it might
not build targets.

The --dry-run option unfortunately suffers from the similar limitation - it
finds that most targets are out of date, including those unaffected by
local changes.

> I am not sure if there is a better way.
> V/R,
> William


> On Wed, Nov 18, 2015 at 10:53 PM, Abhishek Rai <abhishekrai at gmail.com>
>> Hello,
>> Is there any way in scons to list all targets which depend on a given
source file?
>> In the code base that I'm working on, we have a "pre-commit" script
which verifies whether the changes in the commit break any targets.
Currently, this script tries to build all targets.  Of course, some targets
may not need rebuilding if the corresponding source files haven't changed
since the previous build.  But given the dynamic nature of the code base,
each run of the pre-commit script ends up building nearly all targets even
if that commit affects only a small number of them.
>> Having the ability to list all targets derived from a given source file
will give us the ability to list out these targets first, and then only
build those targets as part of the pre-commit workflow.
>> Thanks!
>> Abhishek
>> _______________________________________________
>> 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/20151118/aa4c84e2/attachment.html>

More information about the Scons-users mailing list