[Scons-users] Doing a build time Glob()
Marc Branchaud
marcnarc at xiplink.com
Fri Nov 29 15:32:52 EST 2013
On 13-11-28 07:10 PM, Bill Deegan wrote:
>
> Correctness and repeatability are the main goal of SCons. (as well as a
> certain amount of "batteries included" on understanding various build tools
> and platforms, and also performance (which is still a work in progress))
> It's very very unlikely you'll convince us to alter that.
I agree 100% with these goals. My point is that I think SCons could be a bit
more flexible about how to achieve them.
I also agree with you and Dirk that the make example has flawed dependency
tracking, and that typical make-based solutions to those problems (e.g. a
".headers-installed" touchstone file) do not fully fix them. But make's 80%
solution means that it's easier to use make (instead of SCons) to construct a
usually-good-enough build that integrates foreign build systems.
Is there really just no way to make it easier for SCons to work with
non-SCons builds while still meeting its goals? Just because no other build
system scans an output directory after a tool is run, does that mean that
SCons can't?
Because that's really what this comes down to, I think: Some form of
controlled dependency injection as the Builders are run. And lo, this
conversation is starting to sound familiar... [1]
M.
[1] I'm sure I've said something like the following before:
I have no idea of what SCons's internals look like, but imagine some kind of
DynamicBuilder which specifies an output directory rather than a fixed list
of target files. When SCons first builds the dependency tree, it remembers
any Nodes that might have a dependency on something inside that output
directory (not on the directory itself; rather, maybe the directory is in the
CPPPATH for some targets). Then after the DynamicBuilder runs SCons rebuilds
the dependencies of Nodes that might've depended on the contents of the
output directory.
More information about the Scons-users
mailing list